Was sind die Vorteile von Symlinks gegenüber Hardlinks und umgekehrt?

10

Ich verstehe die Unterschiede zwischen symbolischen und harten Verbindungen, aber ich habe nie verstanden, warum ich mich für die eine oder andere entschieden habe.

Javier
quelle
2
Siehe Antworten zu "Was ist der Unterschied zwischen einer symbolischen Verknüpfung und einer festen Verknüpfung?" auf StackOverflow: stackoverflow.com/questions/185899/…
pelms

Antworten:

10

Dies wurde in ServerFault ausführlich erläutert.

Ein Hardlink hat traditionell die gleichen Dateisystemstrukturen (Inode in Unixspeak), während ein Softlink eine Pfadnamenumleitung ist.

  • Hardlinks müssen sich auf demselben Dateisystem befinden, Softlinks können Dateisysteme überschreiten.
  • Fest verknüpfte Dateien bleiben auch dann verknüpft, wenn Sie eine der beiden Dateien verschieben (es sei denn, Sie verschieben eine Datei in ein anderes Dateisystem, wodurch der Kopier- und Löschmechanismus ausgelöst wird). Softlink-Dateien werden unterbrochen, wenn Sie das Ziel (Original) verschieben, und manchmal, wenn Sie den Link verschieben (Haben Sie einen absoluten oder relativen Pfad verwendet? Ist dieser noch gültig?).
  • Hardlink-Dateien sind gleichwertig, während das Original speziell für Softlinks verwendet wird. Durch Löschen des Originals werden die Daten gelöscht. Die Daten verschwinden erst, wenn alle Hardlinks gelöscht wurden.
  • Softlinks können bei Punkt jeden Ziel, aber die meisten OS / Dateisysteme nicht zulassen Hardlinks Verzeichnisse Zyklen im Dateisystem Graph zu verhindern (mit Ausnahme des .und ..Einträgen in Unix - Verzeichnissen , die Hard - Links sind).
  • Softlinks erfordern möglicherweise spezielle Unterstützung durch Dateisystem-Walking-Tools. Lesen Sie den Readlink (2) .

(Einige Details wurden von mat1t in Erinnerung gerufen . Danke.)

dmckee --- Ex-Moderator Kätzchen
quelle
10

Ronald hat einen harten Link geschrieben, der an zwei Stellen unterschiedliche Berechtigungen haben kann. Das ist nicht richtig. Beide Orte teilen sich die gleiche Inode. Berechtigungen sind an den Inode gebunden, nicht an den Dateinamen. Hardlinks an zwei Stellen haben also genau die gleichen Berechtigungen, Zugriffszeiten, ...

hurikhan77
quelle
1

Symlinks können Dateisysteme überqueren, Hardlinks nicht. Wenn Sie die Originaldatei löschen, hält der Hardlink sie weiterhin am Leben, ein Symlink jedoch nicht.

bobmcn
quelle
0

Ein fester Link bedeutet im Wesentlichen, dass sich die Datei an zwei Orten befindet. Sie kann unterschiedliche Berechtigungen haben. Sie können sie an Ort und Stelle löschen, die andere jedoch nicht.

Ein Softlink ist nur ein Hinweis auf die Realität.

Ein fester Link besteht aus zwei (oder mehr) Verzeichniseinträgen, die auf dieselbe Datei verweisen. Ein Softlink ist ein Verzeichniseintrag, der auf einen anderen Verzeichniseintrag verweist.

Ronald Pottol
quelle