Bilder sortieren und umbenennen unter Linux

Im Urlaub werden immer Unmengen an Fotos geschossen, welche nach dem Urlaub sortiert werden wollen. Da ich gerade vor dem Problem stand Fotos von vier unterschiedlichen Kameras zu sortieren, will ich mein zusammengesuchtes Wissen hier mal preisgeben 🙂

Wurde vergessen bei einer Kamera die korrekte Ortszeit einzustellen, kann man dies mittels „jhead“ korrigieren. Befand man sich z.B. in der kanadischen Zeitzone „Mountain Time“, die Kamera war aber auf die Mitteleuropäische Zeitzone eingestellt, lautet der Befehl „jhead -ta-8:00:00 *.jpg“. Damit wird der Zeitstempel in den Fotos um 8 Stunden zurückgestellt. Ein „jhead -ta+1:00:00 *.jpg“ würde den Zeitstempel um eine Stunde vorstellen. Wenn Fotos von vier Kameras sortiert werden müssen, wird auch mindestens eine Kamera dabei sein, deren Uhr um 10-15min verstellt ist. Das kann man mit „jhead -ta-0:15:00 *.jpg“ korrigieren.

Wer eine Fotoverwaltung wie Shotwell, Picasa, iPhoto, … verwendet kann an dieser Stelle eigentlich aufhören. Die meisten Programme ordnen die Fotos anhand des Erstellungsdatums an. Yours truly ist aber ein großer Anhänger von geordneten Verzeichnisstrukturen, daher ist noch etwas mehr Handarbeit angesagt, bis alles im gewünschten Format ist 🙂

Hat man die Zeitstempel in den Fotos alle auf die korrekte Ortszeit umgestellt, kann man die Dateinamen mittels „jhead -n%Y-%m-%d-%H:%M:%S *.jpg“ vereinheitlichen. Die Dateinamen der Fotos sehen danach z.B. so aus „2010-09-11-07:59:51.jpg“.

Achtung: Dateien mit Doppelpunkt im Namen sind unter Windows nicht erlaubt! Wer seine Bilder auch auf Windowsrechner anschauen will, verwendet besser keine Doppelpunkte. Der passende Befehl wäre dann „jhead -n%Y-%m-%d-%H%M%S *.jpg“ und führt zu Dateinamen wie „2010-09-11-075951.jpg“. Nicht ganz so schön, aber funktioniert auch unter Windows 🙂

Jetzt müssen nur noch alle Fotos eines Tages in ihr eigenes Unterverzeichnis verschoben werden. Das funktioniert per „exiftool“ und ’nem kleinen shell script:

echo *.jpg | for file in *.jpg
do
picdate="`exiftool -CreateDate -d "%Y-%m-%d" $file | cut -f2 -d: | tr -d ' '`"
if [ "$picdate" != "" ]
then
test -d $picdate || mkdir $picdate
mv -n $file $picdate/$file
fi
done

Fertig 🙂

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.