DCIM kausta piltide mass-ümbernimetamine mustri järgi
Allikas: Pingviini viki
Mine navigeerimisribaleMine otsikasti
#!/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