Samstag, Juli 23, 2016

Von A nach B

Ich habe meine ganz eigene Strategie zum Sichern von Fotos. Ein Schritt in der Backupkette ist das Sichern der Fotos auf einer externen Festplatte. Der andere Schritt ist, den Inhalt dieser Platte auf eine andere Platte zu sichern. Das kann man über irgendwelche grafische Tools machen oder ein Image der einen Festplatte auf die andere draufjubeln. Da es sich aber um Fotos handelt, ist eine Dateibasierte Kopiermethode eigentlich die schlauere Wahl, da dabei im Falle eines Falles nicht gleich die ganze Platte hopps ist sondern nur einzelne Dateien.
Ich wäre nicht ich, wenn ich nicht eine Terminal-basierte Lösung für das Problem gesucht hätte …

Et voilà:
Unixoide Betriebssysteme bringen für genau den Zweck das Kommandozeilentool “rsync” mit. “rsync” gleicht zwei Verzeichnisse miteinander ab. Das geht sogar über’s Netzwerk, aber ich brauche das ja nur lokal (was mir niemand verbietet). Also habe ich kurz die Optionen in der Man-Page überflogen: aha, da gibt es ein “-a”, was gleichbedeutend ist mit “-rlpdgoD” und zum Archivieren gut sein soll. Und ein “-v”, was den Fortschritt ausgibt. Und mein Mac bindet externe Platten im Pfad “/Volumes” ein. Also probiere ich:

rsync -av /Volumes/Platte_1  /Volumes/Platte_2

Super Sache, das Kopieren geht direkt los!
Weil es viele Dateien sind, dauert das auch eine ganze Weile.
Aber die Fortschrittskontrolle zeigt mir: auf “Platte_2” wird alles in einen Ordner mit dem Namen “Platte_1” reinkopiert … So wollte ich das doch nicht haben!
Ich probiere verschiedene andere Optionen, sogar eine grafische Oberfläche für “rsync”, aber irgendwie will mir nicht das gelingen, was ich vorhabe, nämlich eine dateibasierte 1:1-Kopie zu erstellen.
Des Rätsels Lösung finde ich dann wieder in der Man-Page von “rsync” (die ich vielleicht sorgfältiger hätte lesen sollen), im “Usage”-Kapitel:

“A trailing slash on the source changes this behavior to avoid creating an additional directory level at the destination.”

TL;DR:
Wer also dasselbe vor hat wie ich, schreibt statt

rsync -av /Volumes/Platte_1  /Volumes/Platte_2

lieber

rsync -av /Volumes/Platte_1/  /Volumes/Platte_2