Kopieren mit rsync

Zuletzt verändert am 24. Juli 2026 • 3 Min. Lesezeit • 483 Wörter
Warum du besser rsync zum Kopieren verwenden solltest anstatt cp (zumindest wenn du große Datenmengen über ein Netzwerk kopierst).
Kopieren mit rsync
Bild von Michael Jeltsch

Gründe, warum du (nicht immer, aber oft) rsync gegenüber cp bevorzugen solltest:

  1. Unterbrochene Übertragungen fortsetzen Wenn du eine große Datei kopierst und dein Computer oder die App abstürzt oder der Strom ausfällt, musst du mit cp von vorne beginnen. rsync kann aber genau dort weitermachen, wo es aufgehört hat, was bei großen Datenmengen eine enorme Zeitersparnis bedeuten kann.
  2. Effizienz (Delta-Übertragungsalgorithmus) rsync ist intelligent konzipiert. Wenn du eine Datei kopierst, die am Zielort bereits vorhanden ist (z. B. bei der Aktualisierung eines Backups), kopiert rsync nur die Teile der Datei, die sich tatsächlich geändert haben (das „Delta“), anstatt die gesamte Datei zu überschreiben. cp hingegen kopiert jedes Mal die gesamte Datei.
  3. Fortschrittsanzeige in Echtzeit rsync bietet eine hervorragende visuelle Rückmeldung. Mit dem Flag -P (oder –progress) erhälst du einen Echtzeit-Fortschrittsbalken, der den Fertigstellungsgrad in Prozent, die Übertragungsgeschwindigkeit und die geschätzte verbleibende Zeit anzeigt. cp ist bekannt dafür, dass es keine Rückmeldung gibt, sodass du raten musst, ob der Vorgang noch läuft oder hängen geblieben ist. Das kannst du natürlich am Zielort nachprüfen. Anhand der sich ändernden Größe der bereits angekommenen Datei kannst du sehen ob überhaupt Fortschritte erzielt werden (ls -lh Dateiname oder du -hs Dateiname).
  4. Einfache Übertragungen übers Netz rsync ist von Haus aus für den Einsatz über SSH ausgelegt. Du kannst damit Dateien direkt auf oder von einem Remote-Server kopieren – genauso einfach wie das Kopieren von Dateien auf deinem lokalen Rechner. cp kann dies nicht; um cp für einen Remote-Server zu verwenden, müssten du zunächst das Remote-Dateisystem lokal einbinden, was weitaus komplexer und fehleranfälliger ist.

Hier der vielleicht häufigste Fall, das Kopieren eines Verzeichnisses, inclusive des gesamten Inhalts:

rsync --progress --recursive source target

Um einen zuvor unterbrochenen Kopiervorgang fortzusetzen:

rsync --progress --recursive --ignore-existing source target

Bitte beachte, dass

rsync source/ target

und

rsync source target

unterschiedliche Ergebnisse liefern! Der abschließende Slash (Schrägstrich) am Ende des Quellverzeichnisses weist rsync an, den Inhalt des Quellverzeichnisses in das Zielverzeichnis zu kopieren. Ohne den abschließenden Slash wird das Zielverzeichnis ein einzelnes neues Verzeichnis enthalten, das mit dem Quellverzeichnis identisch ist. Wenn du eine exakte Kopie wünschst, kannst du das Flag -a (–archive) verwenden, welches die Flags -rlptgoD beinhaltet:

--recursive (r)
--links (l, copy symlinks as symlinks)
--perms (p, preserve permissions)
--times (t, preserve modification times)
--group (g, preserve group)
--owner (o, preserve owner)
--devices --specials (D, preserve device files and special files, works only for root)

Um das Verzeichnis mit dem Namen ‘directory’ oder die Datei mit dem Namen ‘file’ vom Kopiervorgang auszuschließen, lautet die Syntax wie folgt:

rsync -a --exclude 'directory' --exclude 'file' source/ target

Sei beim Ausschließen sehr vorsichtig, da es keine Rolle spielt, wo in der Hierarchie sich das Verzeichnis oder die Datei befindet! Wenn du mehrere Dateien mit demselben Namen an verschiedenen Stellen innerhalb des Quellverzeichnisses hast, werden sie alle ausgeschlossen! Um eine bestimmte Datei auszuschließen, kannst du den vollständigen Pfad beginnend mit “/” angeben, was das Root des Quellverzeichnisses bezeichnet (nicht das Root des gesamten Dateisystems).