Jeder, der an Windows gewöhnt war, kann sich vorstellen, was Symlinks sind und wie sie verwendet werden. Andererseits ist das Hardlink-Konzept Windows fremd (bin ich richtig?).
Ich würde gerne wissen, was die typischen Verwendungszwecke von Hardlinks unter Linux sind. Ich habe bereits verschiedene Beiträge gesehen, die den Unterschied in ihrer Funktionsweise beschreiben. Ich frage, was sind einige typische Situationen, in denen ein Benutzer besser dran wäre, harte Links anstelle von Symlinks zu verwenden?
symbolic-link
hard-link
Machen
quelle
quelle
Antworten:
Ich verwende einen festen Link, bei dem ich eine einzelne Datei an zwei oder mehr Stellen benötige. Ich gehe davon aus, dass ich eines Tages einen der Speicherorte löschen möchte, und ich vergesse möglicherweise, dass ich einen Link zu der Datei habe. Dies verhindert, dass ich einen symbolischen Link zu einer Datei bekomme, die nicht mehr existiert.
Klärung:
Ein Dateiname ist in der Tat ein fester Link zur Datei. Somit hat jede Datei mindestens einen festen Link, was wir normalerweise als "den" Dateinamen betrachten. Wenn Sie eine Datei löschen, entfernen Sie tatsächlich ihren festen Link (daher der Name "entfernen", dh
rm
nicht "löschen"). Wenn der letzte feste Link einer Datei entfernt wird, löscht das System auch die Datei.quelle
Harte Links erlauben ...
Eine einzelne ausführbare Datei mit mehr als einem Namen.
Beispiel:
ls -l /bin | grep -v ' 1 ' | sort
listet die/bin
für Sie auf. Ergebnis ...Anstelle von 3 Dateien verwenden bunzip2 bzcat und bzip2 dieselbe Datei, und innerhalb der Datei wird unterschieden, was zu tun ist. Spart Code und weniger Code bedeutet weniger mögliche Fehler und einfachere Wartung.
Eine einzelne Datei, auf die über mehrere Pfade zugegriffen werden kann.
Nehmen Sie zum Beispiel einen Paketmanager, der für jedes installierte Paket ein Verzeichnis / usr / share / doc / $ packagename erstellt und in diesem Verzeichnis eine Datei namens LICENSE mit den Lizenzinformationen des Pakets. Viele Pakete auf einem typischen Linux-System sind GPL-lizenziert, sodass anstelle von 200 Kopien der GPL im Dateisystem nur eine Kopie und 199 Links vorhanden sein können. ptman @ Serverfault
Der Grund, warum Hardlinks hier funktionieren (und Softlinks nicht): Wenn Sie nur einen der Hardlinks entfernen, wird die Datei selbst nicht entfernt.
quelle
mv
) ist eine copy (cp
) + ein remove (rm
)." Dies gilt nur, wenn sich Quelle und Ziel auf unterschiedlichen Bereitstellungen befinden. Andernfallsmv
verschiebt a nur den Namen, nicht die Datei.mv
wird nur der Name geändert. Die Inode bleibt gleich.