Wenn der Finder oder ein Terminal-Befehl ohne Fehlermeldung durchläuft, heißt das zunächst nur: Das Werkzeug hat keinen Fehler bemerkt, den es melden wollte. Ob die Kopie wirklich vollständig ist, ist eine andere Frage. Beim Auslagern von Arbeitsordnern auf eine externe SSD ist sie die wichtigste, denn nach dem Umschalten arbeitest du nur noch mit der Kopie. Diese Seite zeigt vier Prüfstufen, vom schnellen Überschlag bis zum Vergleich von Metadaten, und was jede davon übersieht.

Warum Kopien unvollständig sein können

Die Gründe sind meist unspektakulär. Der Mac schläft während eines langen Kopiervorgangs ein, ein Kabel sitzt locker, oder das Ziel läuft voll. Dateien, die ein Programm während der Kopie verändert, landen in einem Zwischenstand auf dem Ziel. Fehlende Leserechte führen dazu, dass einzelne Dateien übersprungen werden. Liegen Dateien nur als Platzhalter eines Cloud-Speichers vor, muss macOS sie erst aus dem Netz laden, bevor sie kopiert werden können.

Dazu kommen Eigenheiten der Werkzeuge. Je nach Befehl und Optionen werden symbolische Links als Links kopiert oder ihr Ziel wird mitkopiert, Hardlinks werden zu getrennten Dateien, und erweiterte Attribute oder Dateiflags gehen verloren. In Apples Entwicklerforen wird etwa beschrieben, dass gängige Kommandozeilenwerkzeuge erweiterte Attribute und Dateiflags unter Umständen stillschweigend nicht übertragen. Keines dieser Probleme erzeugt zwingend eine Fehlermeldung.

Stufe 1: Anzahl und Größe

Der schnellste Überschlag vergleicht die Zahl der Dateien. find ~/Projekte -type f | wc -l zählt alle regulären Dateien in der Quelle, derselbe Befehl mit dem Pfad auf der SSD zählt sie im Ziel. Weichen die Zahlen ab, ist die Kopie sicher unvollständig. Stimmen sie überein, ist sie deshalb noch nicht korrekt. Die Größe aus du -sh eignet sich nur als grober Anhaltspunkt, weil verschiedene Laufwerke Platz unterschiedlich zuteilen und kleine Abweichungen normal sind.

Stufe 2: Inhalte vergleichen

diff -rq ~/Projekte /Volumes/Arbeit-SSD/Projekte liest beide Ordner vollständig und meldet Dateien, die nur auf einer Seite existieren oder deren Inhalt abweicht. Ohne Ausgabe stimmen die Inhalte überein. Das ist für viele Projektordner eine solide Prüfung. Sie dauert bei großen Datenmengen entsprechend lange, weil jedes Byte gelesen wird, und sie hinterlässt kein Protokoll, auf das du später zurückgreifen kannst.

Stufe 3: ein Prüfsummen-Protokoll

Eine Prüfsumme wie SHA-256 ist ein digitaler Fingerabdruck des Dateiinhalts. Schon ein einziges geändertes Byte ergibt einen völlig anderen Wert. Für einen ganzen Ordner erzeugst du eine Liste mit einem Fingerabdruck pro Datei. Wechsle dazu mit cd ~/Projekte in die Quelle und führe find . -type f -exec shasum -a 256 {} + | sort -k 2 > ~/pruefsummen-quelle.txt aus. Wiederhole das im Zielordner auf der SSD mit der Ausgabedatei ~/pruefsummen-ziel.txt und vergleiche beide Listen mit diff ~/pruefsummen-quelle.txt ~/pruefsummen-ziel.txt.

Weil beide Listen relative Pfade enthalten, lassen sie sich direkt vergleichen. Die Protokolle liegen in deinem Benutzerordner und damit außerhalb der verglichenen Ordner, sonst würden sie sich selbst mitprüfen. Der Vorteil gegenüber Stufe 2: Du hast danach eine Aufzeichnung und kannst die SSD später erneut prüfen, auch wenn das Original längst gelöscht ist. Die Grenze: Die Liste erfasst nur reguläre Dateien.

Stufe 4: Metadaten, die gern verloren gehen

Gerade in Entwicklerordnern steckt wichtige Information außerhalb der Dateiinhalte.

  • Ziele symbolischer Links: find . -type l -ls listet alle Links mit ihrem Ziel. Paketmanager legen zum Beispiel Links auf ausführbare Dateien an.
  • Rechte: ls -l zeigt, ob eine Datei ausführbar ist. Fehlt dieses Recht nach der Kopie, scheitern Skripte, Git-Hooks oder Build-Werkzeuge.
  • Erweiterte Attribute: xattr -l zeigt sie für eine Datei an. Darin speichern macOS und Programme etwa Finder-Tags oder Herkunftsinformationen.
  • Hardlinks: ls -li zeigt die Inode-Nummer. Tragen zwei Dateien dieselbe Nummer, sind sie ein und dieselbe Datei. Werkzeuge wie pnpm arbeiten mit Hardlinks.
PrüfstufeErkenntÜbersieht
Anzahl und Größefehlende Dateien in größerer Zahlgeänderte Inhalte, Metadaten
Inhaltsvergleichfehlende und abweichende InhalteRechte, Links, Attribute, Hardlinks
Prüfsummen-Protokollabweichende Inhalte, dauerhaft dokumentiertRechte, Links, Attribute, Hardlinks
Metadaten-VergleichLinks, Rechte, Attribute, Hardlinksalles, was du nicht ausdrücklich vergleichst

Abweichungen richtig deuten

Meldet eine Prüfung Unterschiede, heißt das nicht automatisch, dass die Kopie defekt ist. Häufig hat sich während oder nach dem Kopieren etwas geändert. Öffnest du den Zielordner im Finder, legt macOS dort unter Umständen .DS_Store-Dateien mit Darstellungsinformationen an. Läuft ein Editor mit Git-Integration im Hintergrund, verändert er womöglich Dateien im .git-Ordner. Protokoll- und Cache-Dateien laufender Programme ändern sich ohnehin ständig.

Solche Abweichungen erkennst du an Namen und Ort. Harmlos sind sie aber nur, wenn du ihre Ursache kennst. Bei allem anderen gilt: Programme beenden, die Kopie mit einem leeren Zielordner wiederholen und danach erneut prüfen. Eine Prüfung, deren Abweichungen du nicht erklären kannst, ist kein bestandener Test.

Wann du prüfen solltest

Der wichtigste Zeitpunkt ist der Moment nach dem Kopieren und vor dem Umschalten. Nur dann sollen Quelle und Ziel identisch sein; danach arbeitest du auf der SSD weiter, und Unterschiede zum alten Stand sind gewollt. Wie sich die Prüfung in den gesamten Umzug einfügt, zeigt die Anleitung zum Auslagern.

Vor dem endgültigen Löschen des Originals lohnt ein zweiter Blick: Ist die richtige SSD angeschlossen, sind die Daten vollständig lesbar, und enthält dein Backup inzwischen den Stand auf der SSD?

Was eine Prüfsumme nicht leistet

Gleiche Prüfsummen beweisen, dass die Kopie zum Zeitpunkt der Prüfung dem Original entspricht. War das Original bereits beschädigt, ist die Kopie auf dieselbe Weise beschädigt. Und eine Prüfsumme schützt nicht davor, dass die SSD später ausfällt oder verloren geht. Eine geprüfte Kopie ersetzt kein Backup. Warum ausgelagerte Daten eine eigene Sicherung brauchen, erklärt der Beitrag Ausgelagert heißt nicht gesichert.

Wie DevSpace Manager die Kopie prüft

DevSpace Manager, eine macOS-App von BRUNIQO, kombiniert diese Stufen zu einem vollständigen Manifest-Vergleich. Nach der Kopie in einen Staging-Bereich auf der SSD vergleicht die App für jede Datei relativen Pfad, Typ, Bytegröße, SHA-256-Prüfsumme, Symlink-Ziel, POSIX-Rechte, Hardlink-Gruppe und erweiterte Attribute. Erst wenn Quelle und Ziel übereinstimmen, wird umgeschaltet. Die spätere Freigabe des Originals erfordert eine eigene Bestätigung, und davor prüft die App die Daten auf der SSD erneut. DevSpace Manager ist für den Mac App Store vorgesehen und derzeit noch nicht veröffentlicht. Den gesamten Ablauf beschreibt die Übersicht zu DevSpace Manager.

DevSpace Manager

Große Arbeitsordner auf eine dauerhaft angeschlossene SSD auslagern: mit Dateiprüfung, Transaktionsjournal und aufbewahrtem Original für einen möglichen Rollback.

Zur App ↗