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.

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.

Veröffentlicht von

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert