Website-Suche

Die Unterschiede zwischen Soft- und Hardlinks unter Linux verstehen


Nehmen wir an, Sie haben auf Ihrem funktionierenden Linux-System eine Datei, die in mehreren Verzeichnisebenen verschachtelt ist. Um einfach auf diese Datei zugreifen zu können, möchten Sie eine Verknüpfung für diese Datei auf Ihrem Desktop erstellen. Es ist möglich, Symlink (auch Softlink genannt) zu verwenden. Es gibt auch eine andere Form von Links, die sogenannten Hardlinks. In diesem Artikel erklären wir die Unterschiede zwischen Soft- und Hardlinks und werfen einen Blick darauf, welchen Sie verwenden sollten.

Weiche vs. harte Links

Ein Softlink oder Symlink ist nur ein symbolischer Link. Es handelt sich lediglich um einen Zeiger auf den Zieldateipfad. Einem Softlink ist es egal, ob die Datei oder der Ordner im Dateipfad wirklich existiert. Wenn die Datei oder der Ordner nicht vorhanden ist, führt dies lediglich zu einem fehlerhaften Symlink. Sie können den Symlink bearbeiten oder löschen, er hat jedoch keine Auswirkungen auf die Zieldatei.

Andererseits hat ein Hardlink den Effekt, dass der Zieldatei ein zusätzlicher Name gegeben wird. Wenn Sie den Inhalt einer Datei bearbeiten, wird dadurch auch der Inhalt der anderen Datei geändert. Kurz gesagt ist ein Softlink lediglich ein Verweis auf den Zieldateipfad, während ein Hardlink ein direkter Link zu den Daten der Zieldatei ist.

Im Folgenden veranschaulichen wir, wie Soft- und Hardlinks funktionieren.

Softlinks in Aktion

Nehmen wir an, wir haben eine Datei namens „first_file.txt“, die vier Textzeilen enthält.

Wir werden einen Softlink in unserem Home-Verzeichnis erstellen.

ln -s first_file.txt ~/sl-firstfile.txt

In der GNOME-Desktop-Umgebung kann ein Softlink für eine Datei erstellt werden, indem Sie einfach mit der rechten Maustaste auf die Datei klicken und „Link erstellen“ auswählen. Es wird ein Softlink erstellt, dessen Name etwa „Link zu .txt“ lautet.

Wenn wir versuchen, den Inhalt von „sl-firstfile.txt“ anzuzeigen, können wir sehen, dass es sich um denselben Inhalt wie „first_file.txt“ handelt.

Wenn wir uns diese beiden Dateien im Dateimanager ansehen, erscheint der Softlink als Verknüpfung zur Originaldatei. Dies wird durch den schwarzen Pfeil im Dateisymbol angezeigt.

Wenn wir versuchen, die Liste des aktuellen Verzeichnisses mit dem Befehl ls -l anzuzeigen, können Sie sehen, wo der Softlink auf die Zieldatei verweist. Das erste Zeichen in der Berechtigungszeichenfolge für „sl-firstfile.txt“ ist „l“, was bedeutet, dass es sich bei diesem Eintrag um einen Link handelt.

Lesen Sie auch: So verwalten Sie Symlinks unter Linux

Löschverhalten von Softlinks

Wenn die Zieldatei gelöscht wird, ist der Softlink weiterhin vorhanden.

Es ist jedoch zu einem „baumelnden“ oder „kaputten“ Link geworden und unbrauchbar.

Wenn Sie nun eine weitere Datei mit demselben Namen erstellen – „first_file.txt“ – wird der Softlink wieder aktiv.

Hinweis: Falls Sie auf Softlinks stoßen und den absoluten Pfad der Datei ermitteln möchten, für die der Link erstellt wurde, verwenden Sie einfach den Befehl readlink wie unten gezeigt.

Die Ausgabe dieses Befehls ist der absolute Pfad der Originaldatei.

Hardlinks in Aktion

Jetzt erstellen wir einen Hardlink für dieselbe Datei in unserem Home-Verzeichnis. Dies kann mit dem folgenden Befehl erfolgen:

ln first_file.txt hl-first-file.txt

Hinweis: Die Methoden zum Erstellen des Soft- und Hardlinks verwenden beide den Befehl ln. Der einzige Unterschied ist das Flag -s, das einen symbolischen Link kennzeichnet.

Eine andere Möglichkeit, einen festen Link zu erstellen, ist die Verwendung des Befehls link.

link hl-firstfile.txt hl2-firstfile.txt

Eine Überprüfung beider Dateien zeigt, dass deren Inhalt identisch ist.

In der GUI werden beide Dateien als unterschiedliche Einheiten angezeigt. Es gibt keine Hinweise auf die Existenz eines Hardlinks.

Versuchen wir, der Hardlink-Datei „hl-firstfile.txt“ eine neue Zeile hinzuzufügen.

echo "hello" >> hl-first-file.txt

Die Datenänderung kann in beiden Dateien eingesehen werden.

Wenn ein fester Link erstellt wird, ist es so, als ob zwei verschiedene Dateien vorhanden wären, deren Daten jedoch verknüpft sind. Eine Veränderung im einen spiegelt sich im anderen wider.

Kurzer Tipp: Beim Erstellen von Softlinks und Hardlinks wäre es eine gute Idee, dieselbe Erweiterung wie die Datei zu verwenden, für die der Link erstellt wird.

Löschverhalten von Hardlinks

Bei Hardlinks ist das Löschen der Originaldatei oder des Hardlinks kein Problem. Die Daten, die ursprünglich in der Datei gespeichert waren, sind weiterhin über den Hardlink zugänglich.

Wann wären Softlinks sinnvoll?

Wir haben festgestellt, dass Softlinks als Verknüpfungen für eine Datei angezeigt werden. Wenn wir eine Datei in mehreren Verzeichnisebenen haben und sie an einem Ort speichern möchten, an dem wir leicht darauf zugreifen können, wäre es eine gute Option, einfach einen kurzen Link dafür zu erstellen.

Wann wären Hardlinks sinnvoll?

Wir haben gesehen, dass sich jede Änderung an der Datei oder am Hardlink in beiden widerspiegelt, sobald ein Hardlink für eine Datei erstellt wurde.

Nehmen wir an, Sie haben einen Backup-Server. Es wird ein inkrementeller Sicherungsmechanismus verwendet, bei dem nur die Änderungen an Dateien/Ordnern seit der letzten Sicherung widergespiegelt werden. Sie können eine feste Verknüpfung zwischen einer Datei auf dem Server und der entsprechenden Kopie auf dem Computer erstellen. Wenn die Sicherung durchgeführt wird, werden Änderungen an der Datei auf dem Computer automatisch auf die entsprechende fest verknüpfte Datei auf dem Server übertragen, selbst wenn die Dateien umbenannt werden.

Abschluss

Sowohl Soft- als auch Hardlinks haben ihre eigenen Verwendungszwecke und sollten in unterschiedlichen Situationen verwendet werden. Wenn Sie ihre Unterschiede verstehen, können Sie beim Erstellen von Links bessere Entscheidungen treffen. Auch für Verzeichnisse können Softlinks und Hardlinks erstellt werden. Während Softlinks dateisystemübergreifend erstellt werden können, können Hardlinks nur innerhalb desselben Dateisystems erstellt werden.

Verwandte Artikel