Este script se encarga de generar un nombre de archivo único, a
partir del md5 y de la fecha que esta dentro de la imagen .jpg
mediante exif.
Partiendo de varios directorios desordenados, como por ejemplo el
siguiente listado:
/mnt/data/fotos
/mnt/data/fotos/fotos
/mnt/data/fotos/fotos/monte2010/fotos
/mnt/data/inspiron/Dropbox/gcoop/fotos
/mnt/data/inspiron/charlas/campusparty-2012/fotos
/mnt/data/inspiron/revisar/fotos
/mnt/data/inspiron/revisar/pld/charlas/campusparty-2012/fotos
/mnt/data/musica/fotos
/mnt/sdb5/vodka/home/osiris/fotos
/mnt/sdb9/bal/fotos
/mnt/sdb9/bal/fotos/JRSL07/fotos
Se invoca al comando fotos-renombrar de la siguiente manera:
cd /mnt
fotos-ordenar
De esta manera el script buscará archivos *.jpg en el directorio
actual (/mnt), en caso de encontrar archivos JPEG, verificará
que efectivamente se tratan de archivos válidos usando file para
identificar que contienen una imagen JPEG, luego se comprobará el
HASH mediante md5sum y se verificará si existe un archivo con el
mismo HASH y/o el mismo nombre de archivo compuesto del HASH y
la extensión .jpg, si es asi indicará que esta duplicado.
Luego con identify verificamos que sea correcto el JPEG y en
caso se ser inválido, se renombra el archivo a HASH.jpg.
Ahora viene lo interesante, extraer la metadata, básicamente la
fecha y hora de creación de la imagen, esto facilitará ordenarlas.
Se realizan varias comprobaciones y se renombra el archivo al
formato YYYY-MM-DD-HH-MM-HASH.jpg usando jhead. En el caso de
no contar con metadata se crea lo mínimo partiendo del timestamp
del archivo.
El resultado sería algo similar a esto:
2014-07-03-0935-2bb594.jpg
2014-07-03-0935-436e18.jpg
2014-07-03-0935-437eaa.jpg
2014-07-03-0935-6c5846.jpg
2014-07-03-0935-8d84be.jpg
2014-07-03-0935-da7f18.jpg
2014-07-03-0936-1ad076.jpg
2014-07-03-0936-9f6327.jpg
2014-07-03-0936-e01e7e.jpg
También se puede especificar el directorio con el parámetro -d y
el nivel de subdirectorios a buscar usanod -l:
fotos-renombrar -l 3 -d ~/ordenar
Hasta este paso conseguimos renombrar a todas las fotos por igual,
bajo un mismo criterio y detectar las duplicadas! :-)