50 lines
1.2 KiB
Bash
Executable File
50 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
function _help() {
|
|
echo '
|
|
Usage: file-enumerate [-k] [-p #] [-o folder]
|
|
|
|
Creates a folder "enumerated" and hard links all files in the current folder
|
|
renamed with a number (d.ext).
|
|
|
|
-k Keep filename as is (d.filename)
|
|
-p Pad numbers, defaults to 4
|
|
-o Output older name, default: enumerated
|
|
'
|
|
exit
|
|
}
|
|
keep=false
|
|
pad=4
|
|
output=enumerated
|
|
for (( i=1; i<=$#; i++ )); do
|
|
j=$(( i + 1 ))
|
|
[[ "${!i}" = "-h" ]] && _help
|
|
[[ "${!i}" = "--help" ]] && _help
|
|
[[ "${!i}" = "-k" ]] && keep=true
|
|
[[ "${!i}" = "-p" ]] && { pad=${!j}; i=$(( i + 1 )); }
|
|
[[ "${!i}" = "-o" ]] && { output=${!j}; i=$(( i + 1 )); }
|
|
done
|
|
|
|
printf -v padstr "%%0%dd" $pad
|
|
|
|
_drive() {
|
|
ls -1p | grep -v "/$" | sort -V | cat -n | while read n f; do
|
|
printf -v padded $padstr $n
|
|
if [[ $keep = true ]]; then
|
|
printf -v outname "%s.%s" "$padded" "$f"
|
|
else
|
|
ext=${f##*.}
|
|
if [[ "$ext" = "$f" ]]; then
|
|
printf -v outname "%s" "$padded"
|
|
else
|
|
printf -v outname "%s.%s" "$padded" "$ext"
|
|
fi
|
|
fi
|
|
printf "%30s -> %s\n" "$f" "$outname"
|
|
cp -l "${f}" "${output}"/"$outname"
|
|
done
|
|
}
|
|
|
|
mkdir -p "${output}"
|
|
_drive
|