Pablito,
Du hast im Prinzip zwei Probleme zu lösen:
- Zum einen möchtest Du Deine Bilder beliebig in Ordnern verteilen, die Deinen Ordnungsvorstellungen entsprechen.
- Zum anderen musst Du garantieren, dass kein Dateiname zwei Mal vorkommt. Denn bei Deiner Art der Organisation könnten, zum Beispiel wegen Kamerawechsels oder Zählerüberlaufs, Dubletten in jedem von Dir verwendeten Verzeichnis Probleme bereiten, zum Beispiel im Ordner "Zitrus".
Um die erste Anforderung erfüllen zu können, musst Du zuerst die zweite erfüllen: Einmalige Dateinamen.
Da Datum und Uhrzeit einmalig im Leben sind, bieten sich diese Informationen doch als diskriminierende (also unterscheidende) Datenelemente an? Sofern in einer Sekunde mehrere Aufnahmen entstanden, wäre eine laufende Nummer innerhalb der Sekunde das Mittel der Wahl.
Ich kenne Deine Software nicht, aber da Du einen Mac verwendest, müsste für Deine Umgebung die -kostenlose weil freie- Software 'exiv2' verfügbar sein. Sie kann Bilddateien in beliebiger Menge mit einem einzigen Kommando so umbenennen, dass der Dateiname exakt diesem Muster entspricht, nämlich z.B. JJJJMMTT_HHMMSS.jpg. Damit wären einmalige Dateinamen garantiert. Sofern bereits eine Datei mit dem fraglichen Namen existiert, hängt exiv2 auf Wunsch automatisch eine laufende Nummer an, z.B:
20061130_155310_1.jpg
20061130_155310_2.jpg
20061130_155310_3.jpg
20061130_155310_4.jpg
Das Programm wird auf der Kommandozeile aufgerufen. Zum Umbenennen aller Dateien die mit "DSC" beginnen, gibt man z.B. ein:
exiv2 -F rename DSC*
und das wars.
Dein Arbeitsablauf könnte also so aussehen:
- Kopiere alle Bilddateien in einen beliebigen Arbeitsordner.
- Rufe dort o.g. Kommando auf.
- Verteile die Bilddateien entsprechend Deiner Vorstellungen.
Und feddisch.
....
PS: Man kann mit Hilfe von exiv2 auch Bilder über einen ganzen Verzeichnisbaum umbenennen.
PPS: Da ein Mac auch Perl beherrschen sollte, könnte man auch mit einem Script alle Dateien eines Verzeichnisbaumes in einem Rutsch zu Dateinamen mit einer sequentiellen Nummer umbenennen, z.B. so:
#!/usr/bin/perl -w
use strict;
use File::Find;
use File::Basename;
my $count = 0;
find(sub { printf "%s '%s' '%s/%07d%s'\n", $ARGV[0] ? $ARGV[0] : "mv",
$File::Find::name, dirname($File::Find::name), $count++,
($File::Find::name =~ /.+\.([^\.]+)$/) ? '.'.$1:''; }, ".");
Aber das habe ich eben nur mal schnell zum Testen zusammengehackt, man müsste es ggf. etwas verfeinern.