Ich implementiere ein Backup-Schema mit Rsync und Hardlinks. Ich weiß, dass ich link-dest mit rsync verwenden kann, um die Hardlinks zu erstellen, aber ich habe die Erwähnung von "cp -l" gesehen, bevor "link-dest" in rsync implementiert wurde. Eine andere mir bekannte Hardlink-Methode ist "ln".
Meine Frage ist also aus Neugier: Gibt es einen Unterschied zwischen der Verwendung von "cp -l" und der Verwendung von "ln" bei Hardlinks?
cp: illegal option -- l
Sind Sie sicher, dass cp eine l-Option hat?Antworten:
Das Ergebnis von beiden muss dasselbe sein, da ein fester Link zur Originaldatei erstellt wird.
Der Unterschied liegt in der beabsichtigten Verwendung und daher in den für jeden Befehl verfügbaren Optionen. Zum Beispiel
cp
kann Rekursion während verwendenln
kann nicht:erstellt feste Links
<target>
zu allen Dateien in<src>
. (Es werden neue Verzeichnisse erstellt, keine Links.) Das Ergebnis ist, dass die Verzeichnisbaumstruktur unter<target>
identisch mit der unter aussieht<src>
. Es wird sich dadurch unterscheiden,cp -r <src> <target>
dass die Verwendung der letzteren Dateien und Ordner kopiert und jedem einen neuen gibt,inode
wohingegen die erstere nur feste Links für Dateien verwendet und daher einfach derenLinks
Anzahl erhöht .Wenn Sie wie in Ihrem Beispiel eine einzelne Datei kopieren, sind die Ergebnisse identisch.
quelle
link verwendet die wenigsten Systemaufrufe, gefolgt von ln und schließlich cp :
quelle