DCIM kausta piltide mass-ümbernimetamine mustri järgi

Allikas: Pingviini viki
#!/bin/bash
 
nimekiri=$(find -iname "*.jpg")
for fail in $nimekiri
do
	kuupaev=$(exif -m -t "Date and Time" $fail | sed -r -e "s/ /_/g")
	uusnimi="$kuupaev"_"$(echo "$fail" | sed -r -e "s/(.*DCIM\/)([[:digit:]]*)([[:alpha:]]*\/IMG_)(.*)/\2\4/")"
	echo $fail "->" $uusnimi
#	mv -v $fail $uusnimi
done

Vaata ka


Kohandatud variant:

#!/bin/bash
 
## koosta nimekiri jpg failidest 
nimekiri=$(find -iname "*.jpg")
 
## käivitame tsükli $nimekiri sissekannete raames
for fail in $nimekiri
do	
 
## loeme EXIF andmetest pildistamise aja kujul AAAA:KK:PP TT:MM ja pöörame selle kujule PP.KK.AA TT:MM
	kuupaev=$(exif -m -t "Date and Time" $fail | sed -r "s/^([19|20]{2})([0-9]{2}):([0-9]{2}):([0-9]{2}) ([0-9]{2}):([0-9]{2}):([0-9]{2})$/\4.\3.\2 \5:\6/g")
 
## viime ühte sõnesse kokku kuupäev-kellaaeg, kausta nr ja faili nr. "Eemaldame" EOS5D/IMG_ reliktid tulevasest failiteest. Faililaiendi tähed langetame.
	uusnimi="$kuupaev"_"$(echo "$fail" | sed -r -e 's/.\/DCIM\/([0-9]{3})[A-Za-z0-9\/]*_([0-9]{4})(.*)$/\1\2\3/' -e 's/JPG/jpg/')"
 
## Muudatuste kontrollkuva
	echo $fail "->" $uusnimi
 
## Reaalne faili ümbernimetamine koos asukoha muudatusega. Eemalda # alles peale veendumist, et skript toimib vigadeta kujul:
## ./DCIM/345EOS5D/IMG_2293.JPG -> 29.05.10 14:16.24_3452293.jpg
#	mv -v $fail $uusnimi
done