Fotografie incasinate


Come immagino qualsiasi padre ho migliaia di foto raccolte negli ultimi 13 anni (dalla nascita del mio primo figlio). Mi sono reso conto di non averle organizzate nel modo corretto, avevo la necessità di sistemare per folder, denominando tali folder per “anno-mese” onde facilitarne la consultazione.

Non trovando nulla di comodo e performante ho optato per il caro vecchio imagemagick con il quale mi sono fatto il seguente script:

#!/bin/bash

IDENTIFY=/usr/bin/identify

for i in `ls`; do

exifdate=$($IDENTIFY -verbose $i | grep "exif:DateTimeOriginal:" | awk '{ print $2 }' | awk -F ":" '{ print $1"-"$2 }')
if [ -n "$exifdate" ]; then
echo "$i -> exif date is $exifdate"
else
exifdate=$($IDENTIFY -verbose $i | grep "date:modify:" | awk '{ print $2 }' | awk -F "-" '{ print $1"-"$2 }')
echo "$i -> file date is $exifdate"
fi
if [ -n "$exifdate" ]; then
if [ ! -d $exifdate ]; then
mkdir $exifdate
fi
mv "$i" $exifdate/
fi
done;

Lo script usando il tool identify con lo switch -verbose legge il tag exif:DateTimeOriginal: per determinare quando la foto è stata originariamente scattata e quindi dopo averne estratto anno e mese la sposta in un subfolder AAAA-MM. Alcune delle mie foto sono state scattate con dispositivi che ancora non supportavano i tag exif, ho quindi inserito anche un controllo che nel caso manchi l’informazione tenta di recuperarla dall’attributo date:modify:.

Lo script è molto grezzo e va migliorato perché non gestisce correttamente i nomi delle immagini con lo spazio (in generale evito gli spazi nei nomi ricorrendo a “rename ‘s/ /_/’ *” che sostituisce al volo gli spazi con il carattere _) ma per il resto sembra fare egregiamente il suo lavoro permettendomi di controllare e riorganizzare le foto velocemente.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s