X

rsync: Die Sache mit dem Slash am Ende

Rsync ist im Unix- und Linux-Universum auf der Konsole ein sehr nützliches Tool zum Kopieren bzw. Synchronisieren von Verzeichnissen auf lokalen oder entfernen Systemen. Während scp auch komplette Verzeichnisse samt deren Inhalte rekursiv kopieren kann, bietet rsync den großen Vorteil, Dateien mittels Zeitstempel vergleichen zu können. So wird nur kopiert, was neuer ist und gelöscht, was im Quellverzeichnis nicht mehr vorhanden wird. Ordner werden also synchronisiert bzw. auf den gleichen Stand gebracht. Das Problem worüber ich immer stolper: Wie war das nochmal mit dem abschließendem Slash?

Slash am Ende, ich nur den Inhalt sende

Mit diesem Merksatz, versuche ich mir zu merken, dass der abschließende Slash am Ende des Quellverzeichnis nur die Ordner-Inhalte kopiert:

rsync -avz /lokales/quellverzeichnis/ /lokales/zielverzeichnis/

Zu einem entferntem System sieht der Befehl so aus:

rsync -avz /lokales/quellverzeichnis/ benutzer@zielserver:/entferntes/zielverzeichnis/

Zur Verdeutlichung hier noch eine Ordnerstruktur

Kein Slash und rsync ist gemein, dann haut es das Quellverzeichnis mit rein

Leider nicht ganz so einprägsam, weil der Merksatz länger ist, aber eine gute Ergänzung um die Eselsbrücke abzurunden. „Gemein“ daher, weil es häufig gewünscht ist, dass nur die Ordnerinhalte kopiert werden sollen und nicht nochmal das Verzeichnis erstellt.

Nachfolgendes Kommando erstellt das Verzeichnis

rsync -avz /lokales/quellverzeichnis /lokales/zielverzeichnis/

Was macht der Slash am Ende beim Zielverzeichnis?

Um es einfach zu halten: Nichts relevantes! Das kannst du ignorieren. Brauchst Du nicht. Verwirrt mehr als es hilft.

Ist die Quelle bei rsync nur eine Datei und das Zielverzeichnis hat ein abschließenden Slash beim Pfad, wird der Ordner erstellt. Das ist deshalb überflüssig und macht sich das Merken schwerer, weil man für so eine Aufgabe eher scp nutzen würde zum kopieren, außer es soll nur kopiert werden, wenn die Datei neuer ist.

Beim Erstellen der Merksätze hat ChatGPT geholfen. Von alleine ist die KI aber da nicht komplett drauf gekommen. Übrigens kannst Du deine Konsolenfähigkeiten, auch mit ChatGPT üben, da die KI ein Unix-Terminal simulieren kann. Hier mal der Prompt dazu:

Ich möchte, dass du dich wie ein Terminal Terminal eines Ubuntu Servers verhältst. Ich werde Befehle eingeben und du antwortest, was ein Linux-Terminal entsprechend anzeigen sollte. Ich möchte, dass du ausschließlich  mit der Terminalausgabe innerhalb eines einzigen eindeutigen Codeblocks antwortest. Nichts anderes! Verzichte auf Erklärungen. Gib keine Befehle selbst ein, außer ich weise dich dazu an. Wenn ich dir etwas mitteilen möchte mache ich das, indem ich Text in geschweiften Klammern {wie diesem} platziere. Dann kannst Du darauf normal antworten. Mein erster Befehl lautet pwd.

Allerdings ist ein echtes Betriebssystem spaßiger, aber halt auch aufwändiger, mit dem üben. Öfter gibt es mit ChatGPT auch mal keine Ausgabe.

Christopher Piontek: Ich bin ein technikbegeisterter Blogger, nebenberuflich (Fern-)Student der Wirtschaftsinformatik, hauptberuflicher Webentwickler und schreibe auf Bitpage.de gerne Technik-News, Tutorials und Reviews. Meine favorisierten Themen sind #Software, #Internet und digitale Fotografie.

Zeige Kommentare (1)

  • Der Artikel präsentiert rsync als ein effizientes Werkzeug zur Synchronisierung von Verzeichnissen in Unix und Linux. Im Gegensatz zu scp berücksichtigt rsync die Zeitstempel der Dateien, was eine genauere und wirtschaftlichere Synchronisierung ermöglicht. Die Mnemotechnik "Ding mit einem Schrägstrich am Ende" hilft zu merken, dass nur der Inhalt eines Verzeichnisses kopiert wird, was besonders nützlich bei der Remote-Datenübertragung ist. Eine bachelorarbeit als Hilfe bei der Erstellung hochwertiger Texte könnte die Vorteile und Besonderheiten der Verwendung von rsync klar und ausführlich beschreiben.

Verwandte Blogbeiträge