Wann sollte ich Hardlinks im Gegensatz zu Softlinks verwenden?

10

Ich fange gerade an herumzuspielen, mklinkaber ich versuche immer noch, diese ganze "Symlink" -Sache wirklich in den Griff zu bekommen. Insbesondere ist mir aufgefallen, dass es zwei Arten von Links gibt - "Softlinks" und "Hardlinks" -, aber es fällt mir schwer, den Unterschied zwischen den beiden wirklich zu verstehen, oder warum ich für jeden einen dem anderen vorziehen sollte gegebener Anwendungsfall.

Das Beste, was ich bisher herausfinden konnte, ist Folgendes:

  • Softlinks werden als Zeiger auf die Zieldatei / den Zielordner behandelt.
  • Hardlinks werden so behandelt, als wären sie tatsächlich die Zieldatei / der Zieldatei.

Was bedeutet dies wirklich im Hinblick darauf, wie das Betriebssystem und die Anwendungen die Links behandeln? Welche Faktoren sollten abgewogen werden, wenn entschieden wird, ob der eine oder der andere verwendet wird?

Der aktuelle Anwendungsfall besteht darin , SkyDrive dazu zu bringen, Dateien / Ordner zu synchronisieren, die sich außerhalb des tatsächlichen SkyDrive-Verzeichnisses befinden . Ich würde es jedoch vorziehen, wenn die Antworten auch allgemeine Richtlinien für zukünftige Referenzzwecke enthalten könnten.

Iszi
quelle

Antworten:

6

Es ist möglich, dass Softlinks baumeln, da ein Softlink ein Zeiger auf eine Datei ist.

Es ist nicht möglich, baumelnde Hardlinks zu haben. Jede Datei hat mindestens einen Hardlink, dh einen Verzeichniseintrag im Dateisystem. Wenn Sie also eine Datei und dann einen Hardlink dazu erstellen und dann die Originaldatei löschen, bleibt der Hardlink davon unberührt.

Aus diesem Grund können Hardlinks dazu führen, dass Sie glauben, wenn Sie eine Datei gelöscht haben, dass sie wirklich verschwunden ist. Wenn Sie jedoch nicht ALLE Hardlinks löschen, ist die Datei weiterhin vorhanden. Meistens möchten Sie Softlinks verwenden, es sei denn, Sie möchten diesen speziellen Aspekt von Hardlinks nutzen.

LawrenceC
quelle
Eine geeignete metaphorische Interpretation wäre also, dass ein Softlink nur eine Dateiverknüpfung ist, während ein Hardlink eine synchronisierte Kopie der Datei ist?
Iszi
Nun ... denken Sie daran, dass ein Hardlink keine zusätzliche Kopie der Daten der Datei erstellt. Es ist ein weiterer physischer Verzeichniseintrag. Zwei Hardlinks zu einer Datei ändern also nicht viel Speicherplatz.
LawrenceC
Wenn Sie mit Programmierkonzepten vertraut sind, stellen Sie sich einen Softlink als traditionellen Zeiger und einen Hardlink als referenzgezählten (intelligenten) Zeiger vor.
Paddy