Renommer des photos en masse en ligne de commande

Comment faire quand j’ai deux cartes mémoires l’une après l’autre dans mon appareil photo et que je veux des noms de fichiers qui se suivent ?

# There has to be at least one file in the current folder responding to the given pattern
# start of variables
prefix=DSC_ # file name prefix
extension=NEF # file name suffix
digits=4 # number of digits
increase=257 # will be added to index
# end of variables
lengthofprefix=${#prefix}
files=($prefix*.$extension)
# Rename files in reverse order to avoid collisions
for ((i=${#files[@]}-1; i>=0; i--))
do
file=${files[$i]} # DSC_0047.JPG
index=${file:lengthofprefix:digits}; # 0047
index=`echo $index|sed 's/^0*//'`; # 47 - so that not interpreted as hex
newindex=$((index+increase)); # 333
newindex=`printf "%0${digits}d" $newindex`; # 0333
newfile=$prefix$newindex.$extension; # DSC_0333.JPG
echo renaming $file to $newfile; # renaming DSC_0047.JPG to DSC_0333.JPG
mv -i $file $newfile
done

Keywords : batch renaming image files