Was ist eine gute Anwendung für Dateien und Ordner zum Organisieren großer Mengen von Bildern unter Linux?

Ich habe eine Sammlung von etwa 35.000 JPGs und 5.000 NEF-Dateien. Zuvor habe ich diese Massenladung von Bildern mit RoboImport importiert und "organisiert". Es passte ziemlich gut zu meinem Arbeitsablauf, da ich ihm fast jeden möglichen Namen geben konnte, abhängig von den angehängten (EXIF) Metadaten.

Kürzlich habe ich mir eine zusätzliche Festplatte als Hauptlaufwerk für Fotos zugelegt, mit dem Ziel, die alte als Backup zu verwenden. Ich nutzte die Gelegenheit, um ein neues Benennungsschema zu erstellen, das die NEF-Dateien von den JPGs trennt. Auf diese Weise könnte ich Windows Live Photo Gallery nur für den JPEG-Teil haben, wodurch doppelte Bilder in der Galerie verhindert werden.

Allerdings war Roboimport immer stabil, aber mit dem größten Bulk, den NEF- und JPG-Dateien von meiner dSLR, würgt die App um 1/5. Es stürzt ab und ich kann es nicht wirklich fortsetzen, da es die Bilder nicht genau chronologisch übertragen hat.


Was ist eine gute Anwendung, die auch in der Lage ist, Dateien basierend auf Metadaten zu verschieben. Muss nicht anspruchsvoll sein, da ich Anwendungen wie Picasa usw. verwende, um meine Sammlung tatsächlich zu durchsuchen. Linux ist zu bevorzugen, da dies das Betriebssystem ist, mit dem ich die meiste Zeit verbringe, obwohl ich Windows auf demselben Computer habe.

Meh. Hier ist nicht Reddit, du brauchst das tl;dr-Meme nicht.
Hmm, ich bin StackOverflow zu gewohnt :]
Probieren Sie Shotwell aus, ich denke, Sie werden angenehm überrascht sein.
Ich habe auf das neueste Shotwell aktualisiert, und es deckt jetzt tatsächlich auch RAW-Dateien ab. Das wird wahrscheinlich meine Wahl sein, wenn nichts anderes auftaucht. Eine andere Möglichkeit besteht darin, es manuell basierend auf der exiv2-Ausgabe zu tun, es wird jedoch einige Zeit dauern, es zu schreiben.

Antworten (4)

Exiftool ist ein sehr leistungsfähiges Dienstprogramm zum automatischen Sortieren und Organisieren von Fotos. Siehe den Abschnitt BEISPIELE ZUR UMBENENNUNG im Handbuch.

Ein neues Verzeichnis kann angegeben werden, indem der Wert des Directory-Tags festgelegt wird. Beispielsweise verschiebt der folgende Befehl alle Bilder, die sich ursprünglich im Verzeichnis „DIR“ befanden, in eine Verzeichnishierarchie, die nach Jahr/Monat/Tag organisiert ist:

exiftool "-Directory<DateTimeOriginal" -d "%Y/%m/%d" DIR

Um Dateien zu verschieben und umzubenennen, können Sie auch die -filenameOption verwenden. Um beispielsweise Bilder nach Dateityp, Jahr sowie Datum und Uhrzeit ihrer Aufnahme zu sortieren, können Sie Folgendes ausführen:

exiftool -d '%%e/%Y/%Y%m%d/%H%I_%%f.%%e' '-filename<DateTimeOriginal' YOURDIR

Dann wird eine Datei in YOURDIR mit dem Namen wie imgp1234.dngaufgenommen am 20. Mai 2011 um 08:01 Uhr in den Ordner verschoben dng/2011/20110520/und in umbenannt 0801_imgp1234.dng.

Bitte beachten Sie, dass exiftoolnur Bilder verschoben werden. Wenn Sie also Sidecar-Dateien zusammen mit Ihren RAW-Dateien haben, müssen Sie sich irgendwie darum kümmern. Wenn einigen Ihrer Fotos EXIF-Daten fehlen, werden sie nicht auf diese Weise verschoben. Option -rhinzufügen, um YOURDIR rekursiv zu verarbeiten.

Sieht genau so aus, wie ich es brauche, aber was macht die '-filename<DateTimeOriginal'Flagge? Es scheint -dalle Informationen zu liefern.
@Dykam Der Hauptzweck von exiftoolist das Lesen und Ändern von Bildmetadaten. Die Syntax -DSTTAG<SRCTAGweist es an, Metadaten von SRCTAGnach zu kopieren DSTTAG. -filenamefungiert als zu änderndes Tag (tatsächlich Umbenennen einer Datei), DateTimeOriginalfungiert als Quell-Tag (tatsächliche Metadaten); -dgibt das Datumsformat an (und erlaubt einige Erweiterungen wie %%f, %%e). Sie können auch CreateDate, FileModifyDateund verwenden ModifyDate.

Während Sie mehrere Programme im "Automator" -Stil für Linux finden können (es gibt auch eines speziell für die Arbeit mit Bildern, obwohl ich mich nicht an den Namen erinnern kann).

Aber wenn Sie wirklich etwas Fortgeschrittenes (und möglicherweise plattformübergreifendes) wollen, ist es meiner Meinung nach am besten, selbst etwas zu entwickeln. Persönlich mag ich Python für solche Aufgaben (gut mit Datenverwaltung, plattformübergreifend &c) - aber Sie haben vielleicht andere Vorlieben.

Hm, das könnte tatsächlich klappen. Ich war ein bisschen besorgt über die Leistung, Python ist nicht gerade die schnellste Sprache und erfordert einige Gigabyte an Bildern. Aber der Engpass ist wahrscheinlich IO, also wird es bei richtiger Programmierung nur dadurch begrenzt.
Etwas, das das EXIF ​​liest, sollte nicht die gesamte Datei lesen müssen, und wenn es sich auf demselben Dateisystem befindet, wird eine Verschiebung die Daten überhaupt nicht berühren. I/O sollte überhaupt kein Problem sein.
Hmm, in der Tat, ich habe vergessen, dass ich den Umzug an die nativen Tools delegieren könnte.
Das Verschieben von Dateien sollte ein ziemlich billiger Vorgang sein (wenn sich Quelle/Ziel auf derselben Festplatte befinden, wird nur ein Zeiger irgendwohin verschoben). Ansonsten bietet Python (und die meisten anderen Sprachen) trittsichere Warteschlangen und Thread-Pools, um solche Dinge einfach zu handhaben.

Das Umbenennen der Dateien basierend auf EXIF/IPTC kann von XnView unter Windows durchgeführt werden und ist stabil genug für meine mehreren GB (manchmal nach einem Urlaub). Da Sie nach EXIF/IPTC suchen können, können Sie sie basierend auf den Metadaten verschieben - aber gleichzeitiges Verschieben und Umbenennen nicht.

find /path/to/photos -type f -name "*.NEF" -exec mv {} /path/to/destination/ \;

Dieser Befehl findet alle Dateien mit der Erweiterung "NEF" und verschiebt sie an das angegebene Ziel (eine nach der anderen). Sie können dies auch für Ihre JPEG-Dateien wiederholen.

Das spaltet nur das NEF auf, ich bevorzuge es, wenn es in einem Schritt möglich ist. Es ist jedoch Teil des Toolkits, danke.