Alle Bilder von der Quelle-HDD zur Ziel-HDD mit EXIF umbenennen, aber wie?

Gregor550

Cadet 4th Year
Registriert
Dez. 2006
Beiträge
74
Hallo zusammen,

seid 2004 fotografiere ich Digital mit der Sony DSC-V1, von 2007-2008 mit der Nikon D80 und ab 2008 mit der Nikon D300. Habe mich bisher eher wenig mit der digitalen Bildbearbeitung beschäftigt, das soll sich nun ändern, es geht hierbei vor allem um die NEF/RAW Bilder der Nikon D80/D300. Diese liegen ein wenig durcheinander auf 1 externen Festplatte, es sind bereits über 3 TB, diese möchte ich nun auf eine neue 4TB Festplatte einerseits zusätlich sichern aber gleichzeitig dabei auch direkt umbenennen. Für JPG's habe ich bisher folgendes Programm benutzt: http://www.amok.am/index.php?page=progr&id=9, damit kann man eingeschränkt auch *.NEF sortieren: http://www.amok.am/de/freeware/amok_exif_sorter/faq/, allerdings habe ich die Dateien ja seid Jahren bereits getrennt, so kann ich dies nicht mehr dafür verwenden. Als Betriebssystem benutze ich ArchLinux, die Umbenennung soll am besten mit ExifTool erfolgen, aber andere Tools sind OK. Hauptsache ich komme endlich ans Ziel...

Der Dateiname sollte nach der Umbenennung wie folgt aussehen:

Jahr-Monat-Tag_genaueAufnahmezeitInklusiveSekunden_ShutterCount_Kameramodel
2015-12-12_15-15-15_14859_D300.NEF

Mit folgenden Befehl bekomme ich es auch schon im Ordner hin:

exiftool '-FileName< ${CreateDate}_${ShutterCount}_${Exif:Model}.%le' -d %Y-%m-%d_%H-%M-%S *.*

Allerdings hänge ich hier nun fest, in welcher Weise müsste ich diesen erweitern um von der Quellfestplatte alle Ordner und Unterordner mit allen Dateien umzubenennen und diese dabei dann gleichzeitig zur Zielfestplatte in folgende Ordnerstruktur zu kopieren HauptordnerBilder/Jahr/Monat/Dateien.NEF

Danke schonmal für alle Tipps, MfG Gregor
 
Hallo zusammen,

so, habe es nach langer Zeit nun doch hinbekommen, werde nun alle meine NEF's nach folgender Struktur umbenennen:

"Jahr-Monat-Tag_StundeMinuteSekunde_ShutterCount", so sieht dann das Ergebnis aus "2015-05-06_15h23m36s_74895.nef"

exiftool -r -P '-FileName< ${CreateDate}_${ShutterCount}.%le' -d %Y-%m-%d_%Hh%Mm%Ss /home/gregor/Schreibtisch/NEF_Test

(Wichtig ist hierbei, das Verzeichnis mit den Bildern am Ende mitanzugeben, sonst läuft es nicht)

Das Kameramodel habe ich aus dem Dateinamen rausgenommen, steht ja in den Exif's...

Habe nach dem umbenennen alle Dateien manuell in die richtigen Ordner verschoben.

Habe nun alle meine NEF's nach der neuen Struktur umgewandelt, was nun zur Folge hat das ich jetzt ca. 500GB mehr Speicherplatz auf der Festplatte habe, da nun doppelte Dateien entsorgt wurden...


Nun habe ich soeben versucht nach gleichen Prinzip meine JPG's umzuwandeln, da gibt's es aber noch Handlungsbedarf, es sind nämlich folgende Probleme aufgetreten:

- Es sind mehrere ältere Kameras meiner Frau dabei, diese kennen sowas wie ein Shuttercount überhaupt nicht.
-Dann habe ich auch mehrere Tausend Bilder meiner D300, dort fehlt der Shuttercount ebenfalls, kann mir aber derzeit nicht erklären weshalb, habe noch nie meine Exifs verändert.

MfG, Gregor
 
Das hier dürfte das tun, was Du möchtest (ggf. noch ein wenig modifizieren, da nicht ausprobiert):
Code:
#! /bin/bash
##Im Quellverzeichnis ausführen!
SAVEIFS=${IFS}
IFS=$(echo -en "\n\b");
BILDNUMMER=0   ## Platzhalter für unbekannte Bildnummer
ZIELVERZEICHNIS="/backup/myporn" ##bitte anpassen
##Block: Dateien finden
for FILE in $(find . |egrep -icq "\.nef$|\.arw$|\.raw$"); do
    ##Erstellungsdatum auslesen und sinnvolle Variablennamen vergeben
    CREATEDATE=$(exiftool -EXIF:CreateDate ${FILE}) 
    read X X JAHR MONAT TAG STUNDE MINUTE X <<<$(awk '{gsub(/:/," ");print}' <<<${CREATEDATE})
    ##Bildnummer auslesen und in Variable schreiben
    FNUM=$(exiftool -EXIF:fnumber) ## "shutter count" bzw. "image number" bei Canon/Nikon
    ##Block: Benennen und verschieben
    if [ -n "${JAHR}" ] && [ -n "${MONAT}" ] && [ -n "${TAG}" ]; then
        ##Datei existiert bereits & Abbruch
        [[ -e ${ZIELVERZEICHNIS}/${JAHR}/${MONAT}/${TAG}_${FNUM} ]] && echo "Datei ${ZIELVERZEICHNIS}/${JAHR}/${MONAT}/${TAG}_${FNUM} existiert bereits." && exit 1
        ##ggf. Zielverzeichnis erstellen, wenn nicht existiert
        [[ ! -e ${ZIELVERZEICHNIS}/${JAHR}/${MONAT} ]] && mkdir -p ${ZIELVERZEICHNIS}/${JAHR}/${MONAT}
        ##Bildnummer vergeben, wenn nicht existiert
        [[ ${FNUM} = "" ]] && FNUM="unbekannt_${BILDNUMMER}"  && BILDNUMMER=$(( ${BILDNUMMER} + 1 ))
        ##verschieben (auswählen nach Bedarf)
        #mv ${FILE} ${ZIELVERZEICHNIS}/${JAHR}/${MONAT}/${TAG}_${FNUM}
        ##kopieren (auswählen nach Bedarf)
        #cp ${FILE} ${ZIELVERZEICHNIS}/${JAHR}/${MONAT}/${TAG}_${FNUM}
        ##Platzhalter zur Funktionsprüfung
        echo "cp ${FILE} ${ZIELVERZEICHNIS}/${JAHR}/${MONAT}/${TAG}_${FNUM}"
    else
        echo "${FILE} hat kein Erstellungsdatum oder EXIF-Daten nicht vorhanden"
        exit 1 ## Abbruch bei Datei ohne EXIF- Info zu Erstellungsdatum
    fi
done
IFS=${SAVEIFS}

Alle Angaben wie immer ohne Gewähr.
 
Zuletzt bearbeitet:
Zurück
Oben