OS X: Inhalte zweier Ordner zusammenführen (aka “merge”)
Geschrieben am 27. Mai 2009 von Oliver1 Kommentar »
Tags: Mac OS X, Solutions

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 Daten (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 irgend welche 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.









1 Kommentar
Kommentare
nice! rsync kannte ich zwar schon, wusste aber nicht, dass es neben “man” auch “info” gibt!