Einführung

Digitalkameras speichern Bilder oft unter Dateinamen wie DSC00523.jpg. Mit diesen nicht sprechenden Namen kann ich nicht viel anfangen. Das Datum und die Uhrzeit des Fotos ist für den Dateinamen viel besser geeignet.

EXIF-Daten auslesen

Die Digitalkamera speichert das Datum und die Uhrzeit in den so genannten EXIF-Tags. Mit jhead kann man diese Tags auslesen und bearbeiten.

Mit jhead dateiname.jpg kann man sich die EXIF-Tags anzeigen lassen:

e $ F F F C C D R F F C E A F I W M m i i i a a a e l o C x p o S h e a j l l l m m t s a c D p e c O i t n h e e e e e e s a o r u t e u e r r l h l w s t s e e r e a n s d a a T u i u u q b i l d a i a i t u l d r r d u a n @ m z t m m m i s e t e e i i l g d D e e e a o e o e n h s v a i S k d n d g t t . n M s C e e t i . c o c 0 l h m e d o 0 e e r 5 : : : : : : : : : : : : : : : : d 2 i 3 D 2 2 C C 2 2 N 1 5 0 f 6 8 A p a . S 2 0 a a 0 5 o 4 . . / . 0 u a : J C 7 1 n n 1 9 . 7 0 4 5 0 t t ~ P 0 7 1 o o 0 2 3 2 2 . 7 o t G 0 9 : n n : m m 0 5 m e 5 7 0 1 x m m r 2 2 2 D 2 s n 3 : I : 1 . b 0 G 2 9 ( J y 6 I 7 4 3 ( P t T 4 5 1 G e 1 A 1 m / s 3 L 2 m 5 : : 0 4 I 0 e ) 5 X 2 q : U : u 3 S 3 i 4 7 v 8 a 0 l e I n S t : 9 0 m m )

In der Zeile Date/Time sieht man, dass das Foto am 27.12.2010 um 12:02:37h erstellt wurde.

Datei umbenennen

Mit jhead kann man nun das Foto nach dem Muster YYYY-mm-dd-HH-MM-SS umbenennen. Dies geschieht mit der Option -nf von jhead.

e $ D m S a j C n h 0 u e 0 e a 5 l d 2 @ 3 d - . i n J s f P c % G o Y r - d % i m a - : % 2 ~ d 0 _ 1 % 0 H - - 1 % 2 M - - 2 % 7 S _ 1 D 2 S - C 0 0 2 0 - 5 3 2 7 3 . . j J p P g G

Kann das Erstellungsdatum und die Erstelungsuhrzeit nicht aus den EXIF-Daten herausgelesen werden, wird der Zeitstempel der Datei verwendet.

In der Manpage von jhead sieht man, wie sich der Format-String zusammensetzen lässt:

% % % % % % % % H j m M S w y Y H D M M S W Y Y o a o i e e e e u y n n c e a a r t u o k r r o h t n d i f e d a w w n a y i i y s a a t t 2 e s s a h h 4 a d s o - r e d d u c h c e e d t e o a i c c e n u s m i i c c t r a m m i e u d l a a m n r f e l l a t y o c n l u , r i u n n r m m m u u n y a a a b m m u , s t l e b b m r e e b a d ( n r r e s e 0 u ( r c 0 m 0 ( ( d i b 1 0 0 ( e m - e 0 0 0 c a r - i l 2 - - - m 3 ( 1 a n ) 0 2 5 5 6 l u 0 ) 9 9 ; m 1 ) ) n b S u e - u m r n b 3 d e 6 a r 6 y ) ( i 0 s 0 0 - ) 9 9 )

Alle Fotos in einem Ordner umbenennen

Mit dem regulären Ausdruck *.[jJ][pP][gG] benennt jhead alle Fotos in einem Ordner um:

jhead -nf%Y-%m-%d_%H-%M-%S *.[jJ][pP][gG]

Alle Fotos umbenennen

Mit find kann man die gesamte Bildersammlung auf einmal umbenennen:

find Daten/Bilder -iname *.jpg -exec jhead -nf%Y-%m-%d_%H-%M-%S {} \;

Im Ordner Daten/Bilder sind alle Fotos gespeichert, welche umbenannt werden.

Automatisieren

Damit man nicht jedes mal den Befehl von jhead eingeben muss, kann man sich ein Alias in the ~/.bashrc schreiben:

a l i a s i m a g e r e n a m e = " j h e a d - n f % Y - % m - % d _ % H - % M - % S "

Jetzt kann man im jedem Verzeichnis durch imagerename alle Fotos umbenennen.