Antworten:
Wenn Sie den Inhalt kopieren, um ihn unmittelbar danach zu verknüpfen, können Sie die Hardlinks nicht gleich sofort generieren. Link Shell-Erweiterung macht diesen Job einfach.
Wenn es einen Grund gibt, warum Sie diese bestimmte Abfolge von Aktionen durchlaufen müssen, hat der Autor von LSE auch ein Befehlszeilentool geschrieben Dupemerge fast genau das zu tun, was Sie fragen.
Dabei ist zu beachten, dass NTFS keine Semantik "Kopieren beim Schreiben" für Hardlinks ausführt. Wenn etwas den Inhalt einer Datei ändert, werden alle Versionen mit festem Link sofort "aktualisiert", da sie alle Verzeichniseinträge mit demselben Datenumfang auf der Festplatte enthalten. Darüber hinaus führen viele Programme eine Prozedur zum Speichern in eine temporäre Datei, zum Löschen des Originals und zum Umbenennen des alten in einen alten Namen durch, anstatt eine Datei zu überschreiben. Dadurch werden andere Hardlinks zu den Daten wirksam, da sie auf den alten Datenumfang verweisen.
dupemerge
auf der Quelle, dann LSE oder es ist CLI-Begleiter ln
So erstellen Sie eine Smart Copy, die die inneren Verbindungen beibehält.
Sie können dies mit FINDDUPE tun, das Sie finden können Hier .
Erwägen src
als Quellordner und dest
Als Zielordner können Sie Folgendes tun:
xcopy /I /E src dest
finddupe -hardlink -ref src dest
Hinweis: Hardlinks funktionieren nur unter NTFS
finddupe -bat find.bat src
Dann entfernen Sie in der erstellten Datei find.bat alle del-Zeilen, erstellen Sie eine eindeutige Liste der fest verbundenen Dateien (letzter Parameter von fsutil), kopieren Sie diese Dateien und führen Sie das Skript aus. Natürlich wäre ein Skript dazu am besten, aber ich habe jetzt keine Zeit dafür.