
Leider beherrscht der Finder unter Mac OS X die Funktion “Ordner zusammenführen” (im Fachjargon “merge” gennant) nicht. Der Finder basiert rein auf Copy-, Cut- & Paste (Kopieren, Ausschneiden, Einfügen).
Dennoch gibt es eine bequeme Variante, einen Ordner mit seiner gesamten Struktur (Unterordner & Dateien) zu “mergen” – und zwar über das Terminal.app mit dem Befehl “rsync”.
“rsync” ist grundsätzlich einfach eine Erweiterung des “cp” bzw. “rcp” Befehls (cp = copy, zu Deutsch “kopieren”).
Beispiel: ich habe zwei Ordner, und möchte den kompletten Inhalt des Ordners “source” in den Zielordner “target” übertragen – dabei sollen aber Dateien von gleicher Grösse und gleichem Zeitstempel nicht ersetzt werden. Dazu verwende ich den folgenden Befehl im Terminal.app:
rsync -arv --exclude=.* /Pfad/zum/Source/Ordner/ /Pfad/zum/Target/Ordner/
-arv : Eine zusammengefasste Schreibweise für die einzelnen Optionen -a -r -v
-a : Kopiert die Objekte mit ziemlich allen Informationen (Erstellungsdatum, Änderungsdatum, Zugriffsrechte, etc.)
-r : Kopiert das Hauptverzeichnis rekursiv (alle Unterordner und deren Dateien werden berücksichtigt)
-v : Zeigt im Terminal-Fenster alle Meldungen an
–exclude=.* : Dateien, welche mit einem . beginnen (z.B. “.DS_STORE”), sollen NICHT berücksichtigt werden
Ein nettes Feature dieses Befehls ist, dass man auch gewisse Dateien oder ganze Ordner vom Zusammenführungs-Prozess ausklammern kann (wie oben bereits mit “exclude=” angedeutet).
rsync -arv --exclude=.* --exclude=*.jpg --include=test.jpg /Pfad/zum/Source/Ordner/ /Pfad/zum/Target/Ordner/
Mit obigem Beispiel werden nebst Dateien die mit einem . beginnen (.DS_STORE) auch alle Bilddateien mit der Endung .jpg nicht berücksichtigt. Allerdings wird eine spezifische Bilddatei, “test.jpg”, berücksichtigt!
Man kann also bei den Befehlen –include und –exclude mit sogenannten Wildcards-Arbeiten (Zeichen, die stellvertretend für anderen Zahlen/Buchstaben/Zeichen stehen). Dazu gehören auch + und ?.
Eine detaillierte Dokumentation über den Befehl “rsync” erhält man, wenn man im Terminal-Fenster “info rsync” eingibt.
nice! rsync kannte ich zwar schon, wusste aber nicht, dass es neben “man” auch “info” gibt!
Kann man das auch verwenden, um z.B den Inhalt von 100 Unterordnern eines Verzeichnisses zu einem zusammenzufassen? Ich meine: Ich hab einen Ordner namens Bilder, in welchem sich viele Ordner mit Bildern befinden… Nun möchte ich aus den vielen Ordnern einen “großen” mit allen Bildern der Unterordner machen. Wäre das mit diesem Befehl realisierbar?
@Jules Das geht, dazu braucht der “rsync” Befehl allerdings etwas “Unterstützung”. Mit folgendem Befehl sollte es funktionieren (ggf. “jpg” mit der Endung deiner Bilddateien ersetzen, bzw. ergänzen):