Tool zum Kopieren von Dateien, das Hardlinks erkennt?

Kann man unter Linux ein Verzeichnis rekursiv von einem auf den anderen Datenträger kopieren und dabei Hardlinks erhalten? Also, ich habe Dateien unterhalb des zu kopierenden Verzeichnisses, die dort jeweils mehrfach unter verschiedenen Namen (Hardlinks) erscheinen, die aber tatsächlich natürlich ein und dieselbe Datei sind (gleiche Inode-Nummer) und eben keine „Kopie“ sind. Beim Kopieren auf einen anderen Datenträger (zur Sicherung) wird die Datei aber mehrfach kopiert, also für jeden vorhandenen Dateinamen auch eine eigene Kopie erstellt.

Gibt es irgendeine Option oder ein spezielles Tool, das Hardlinks automatisch „erkennt“ und diese auch so übernimmt - also, die Datei nur einmal kopiert und jeden weiteren Dateinamen für die Datei auch wieder als Hardlink im Zielverzeichnis anlegt?

ԩᴾԬ2012-11-24T12:30:36Z

Beste Antwort

mit rsync geht das. man muss nur die richtigen parameter wählen

bieromane2012-11-25T13:50:13Z

nein, ein solches tool kenne ich nicht.

hardlinks sind ein zweiter Directory-eintrag für die gleiche datei. Dadurch ist die Datei nur einmal auf der Festplatte, wird aber in 2 oder mehreren Verzeichnissen, oder in einem Verzeichnis unter 2 namen angezeigt.

Wenn du dich mit dem ls-befehl und dem find-befehl auseinandersetzt, sollte es ganz einfach sein, das in ein script zu verpacken. Allerdings solltest du auch erkennen, daß es eine linux-Sache ist, also daß es nicht auf FAT oder NTFS funktionieren wird. Auch nicht auf CDFS.

Anonym2012-11-24T20:51:32Z

Es müssen nicht immer Hardlinks sein. Softlinks sind auch nicht zu verachten.

Stefan2012-11-24T20:32:37Z

hardlinks kenn ich nur von windows,

http://elsdoerfer.name/ntfslink

vielleicht hilfts