Mit welchem ​​Shell-Befehl wird ein Verzeichnis geklont, anstatt eine tiefe Kopie zu erstellen?

4

Ich möchte einen APFS-Klon-Snapshot eines großen Verzeichnisses mithilfe eines Shell-Skripts erstellen. Im Finder kann ich nur Cmd-C, in den anderen Ordner und Cmd-V verschieben und innerhalb weniger Sekunden habe ich ein Duplikat, das wenig zusätzlichen Speicherplatz benötigt. Bei Verwendung des Befehls cp shell dauert es einige Zeit und erstellt eine Kopie, die Speicherplatz beansprucht. Welcher Shell-Befehl kann einen Ordner "sofort" duplizieren, so wie es Finder kann?

mj2008
quelle
paxerstellt eine Verzeichnisstruktur und verknüpft dann Dateien innerhalb der Verzeichnisstruktur. Dies ist der Fall, wenn sich das geklonte Verzeichnis im selben Dateisystem befindet. Bei der Geschwindigkeit bin ich mir nicht sicher.
fd0
Vielleicht möchten Sie sich den Befehl 'ditto' ansehen. Ich bin mir nicht sicher, ob es schneller ist als CP.
17.

Antworten:

3

Der Befehl cp bietet jetzt die Möglichkeit -c, beim Schreiben von Klonen von Dateien eine Kopie zu erstellen.

Aus der cp man-Datei:

-c    copy files using clonefile(2) 

Zum Beispiel: cp -c my-file my-file-clone

user314700
quelle
Hast du probiert, ob das auch kombiniert mit funktioniert -r?
Nohillside
Das BSD- cpDienstprogramm von @nohillside unterstützt nur Großbuchstaben -R, nicht beide, wie das cpDienstprogramm coreutils von GNU . Um die Frage zu beantworten, können Sie ja /bin/cp -cRoder ausgeben /bin/cp -ac.
Danemacmillan