Ich habe keine Erfahrung mit btrfs, aber es wird beworben, dass es
Dateien deduplizieren kann.
In meiner Anwendung müsste ich ganze Verzeichnisbäume duplizieren.
Nach dem, was ich gelernt habe, dedupliziert btrfs nur in einem Post-Scan, nicht
sofort. Sogar nur mit cp scheint keine
Deduplizierung auszulösen (zumindest df zeigt eine erhöhte Festplattennutzung in der
Größe der kopierten Dateien).
Kann ich das Verschieben von Daten ganz vermeiden und btrfs mitteilen direkt, um
eine Datei an einem anderen Ort zu duplizieren, also im Wesentlichen nur ihre
Metadaten zu klonen?
Im Wesentlichen ähnlich einem Hardlink, aber mit unabhängigen Metadaten
(Berechtigungen, Mod.-Zeiten, …).
Akzeptierte Antwort:
Es gibt zwei Möglichkeiten:
cp --reflink=alwayscp --reflink=auto
Das Zweite ist dem Ersten fast immer vorzuziehen. Verwenden von auto bedeutet, dass auf eine echte Kopie zurückgegriffen wird, wenn das Dateisystem kein Reflinking unterstützt (z. B. ext4 oder das Kopieren auf eine NFS-Freigabe). Bei der ersten Option bin ich mir ziemlich sicher, dass sie sofort fehlschlagen und das Kopieren stoppen wird.
Wenn Sie dies als Teil eines Skripts verwenden, das angesichts nicht idealer Bedingungen robust sein muss, verwenden Sie auto wird Ihnen besser dienen.