xcopy vs robocopy

Kopieren von Daten: xcopy vs robocopy

Wer viele Dateien kopieren will, steht bisweilen vor der Frage “xcopy vs robocopy”? Hier ist die Antwort.

Der Befehl „copy“ ist bereits seit der ersten Version von MS-DOS (Source Code) implementiert, um u.a. Dateien kopieren zu können. Später fügte Microsoft das externe Kommando „xcopy“ als zusätzlichen Befehl hinzu, um Operationen zu erledigen, die das eingebaute „copy“ nicht beherrschte. Hierzu gehörten primär Dateioperationen in Unterverzeichnissen.

Neuere Windows-Versionen enthalten einen verbesserten Kopierbefehl: Robocopy bietet einige Optimierungen im Vergleich zu den aus DOS-Zeiten stammenden Kommandos.

Formale Unterschiede bei xcopy vs robocopy

copy und xcopy sind in heutigen Windows-Versionen vor allem aus Gründen der Abwärtskompatibilität enthalten. Seit Windows Vista ist zusätzlich das mächtigere robocopy im Betriebssystem enthalten. Vorher konnte robocopy als Bestandteil des NT 4.0 Ressource Kits bezogen und installiert werden.

xcopy ist nach wie vor in allen aktuellen Windows-Versionen enthalten
xcopy ist nach wie vor in allen aktuellen Windows-Versionen enthalten

Robocopy ist also de facto der Nachfolger von xcopy mit vielen Erweiterungen, die in einem heutigen vernetzten System wichtig sind.

Die wichtigsten Features von robocopy im Vergleich zu xcopy:

  • NTFS ACL Berechtigungen und Attribute (erweiterte Zugriffsberechtigungen auf Benutzerebene)
  • Korrektes Kopieren von Attributen und Zeitstempeln für Verzeichnisse
  • Spiegelungsmodus (mirror), um Verzeichnisse 1:1 zu übernehmen
  • Unterstützung von Pfadlängen von mehr als 259 Zeichen
  • Partieller Datentransfer, wenn im Zielverzeichnis bereits Daten vorhanden sind
  • Unterstützung von UNC-Netzwerkpfaden
  • Fähigkeit zum Wiederaufnehmen unterbrochener Transfers

Die Frage, ob xcopy oder robocopy ist also schon an dieser Stelle relativ eindeutig zugunsten von robocopy beantwortet. Doch es lohnt sich, die weiteren Gründe dafür zu kennen.

Unterstützung von Berechtigungen

Zu Zeiten von MS-DOS war die Berechtigungswelt einfach: Wer Zugriff auf den Rechner hatte, konnte alle Dateien lesen. Modernere Betriebssysteme implementieren an dieser Stelle bereits auf der Ebene des Dateisystems Zugriffsberechtigungen, die mit Name und Passwort des Logins abgeglichen werden.

Hierzu gehören die sogenannten „NTFS ACL“ und Attribute, die festlegen, welcher Benutzer welche Rechte (Lesen, Schreiben, Ausführen etc.) auf eine Datei haben.

Sofern das Zielsystem diese Berechtigungen unterstützt, überträgt robocopy die entsprechenden Berechtigungen mit. Dies ist besonders bei sensiblen Daten in Mehrbenutzerumgebungen wichtig, sodass sich die Frage nach xcopy vs robocopy eindeutig beantwortet: xcopy kann diese Informationen schlicht nicht auswerten.

Spiegeln von Verzeichnisstrukturen

Einer der weiteren Vorteile im Vergleich xcopy vs robocopy ist die Fähigkeit, ganze Verzeichnisstrukturen zu spiegeln.

Dies ist besonders für Datensicherungszwecke (und deren Wiederherstellung) sinnvoll, um große Datenmengen mit einfachen Methoden zu sichern. Hiermit lässt sich beispielsweise ein Back-up auf eine USB-Festplatte machen, oder auf ein Netzlaufwerk, beispielsweise auf ein NAS.

In Zusammenspiel mit Filterparametern, wie beispielsweise dem Alter einer Datei, lassen sich elegant Teilbereiche von Verzeichnissen transferieren.

Robustes Verhalten bei robocopy

Der Name robocopy kommt u.a. von dem Begriff „robust“- bei der Entwicklung wurde Wert auf ein stabiles Verhalten gelegt, welches auch bei Problemen vom Kopiervorgang keine unsichtbaren Datenverluste produziert. Die Unterschiede bei xcopy vs robocopy bestehen darin, dass robocopy Teilvorgänge erneut ausführen kann.

Robocopy kann am Ende der jeweiligen Vorgänge detaillierte Statistiken ausgeben sowie bei Aufruf von Scripten detaillierte Statuscodes an diese übermitteln. Damit lässt sich sicherstellen, dass Fehler bemerkt und behandelt werden.

xcopy vs robocopy (hier: Robocopy; Trypilec, CC BY-SA 4.0, via Wikimedia Commons)
xcopy vs robocopy (hier: Robocopy; Trypilec, CC BY-SA 4.0, via Wikimedia Commons)

Netzwerkpfade

Bei Verwendung von Netzwerklaufwerken ist die Diskussion um xcopy vs robocopy einfach: xcopy benötigt einen lokalen Laufwerksbuchstaben, um Daten kopieren zu können. Robocopy kann UNC-Pfade im Format \\Server\Verzeichnis1\Unterverzeichnis\ verarbeiten, was in großen Netzwerken von Vorteil ist.

Ein weiterer Vorteil: robocopy hat keine Limitierung auf 259 Zeichen, was bei bei stark verschachtelten Strukturen nützlich ist. Somit ist es möglich, ein Verzeichnis mit vielen Unterverzeichnissen auf ein Ziel zu kopieren, das unter Umständen sogar noch längere Pfade benötigt. So sinkt die Fehler- und damit die Abbruchwahrscheinlichkeit.

Ein Beispiel wäre eine Kopie von Verzeichnis “backupdaten\verzeichnis1\…” nach “\\backupserver\backups\servername\datum\backupdaten\verzeichnis1\…”

Fazit zu xcopy vs robocopy

Copy bzw. xcopy sind altgediente Befehle, die seit Urzeiten in DOS und Windows enthalten sind. Aufgrund der Limitierungen lassen sich viele Aktionen auf aktuellen Systemen nur mit robocopy erledigen. Dies betrifft u.a. das Spiegeln von Verzeichnissen unter Berücksichtigung der gesetzten Berechtigungen und Nutzung von UNC-Pfaden.

Das Hantieren auf der Kommandozeile ist aber nicht jedermanns Sache. Dafür gibt es zum einen Robocopy GUI, das bei Heise aber nur mittelmäßig bewertet ist. Wer mehr Komfort haben möchte findet in unserem Artikel Windows 10-Backup-Programm: Empfehlungen einige nützliche Programme. Viele davon sind aber kostenpflichtig. Einer der größten Vorteile von robocopy und xcopy ist daher auch, dass die Tools kostenlos sind.

Bei Microsoft gibt es außerdem eine aktuelle Befehlsreferenz zu robocopy: https://docs.microsoft.com/de-de/windows-server/administration/windows-commands/robocopy



FavoriteLoading Tipp meinen Favoriten hinzufügen (setzt Cookie, mehr unter Datenschutz)