Was ist Symbolischer Link (Symlink)?

Eine besondere Datei, deren Inhalt der Pfad einer anderen Datei oder eines Verzeichnisses ist; beim Öffnen wird das verwendet, wohin dieser Pfad führt. Man erzeugt ihn mit ln -s Ziel Linkname, und ls -l zeigt ihn mit einem führenden l als „Linkname -> Ziel“. Er kann auf andere Dateisysteme und auf Verzeichnisse zeigen, wird aber zu einem defekten Link ohne Ziel, wenn das Ziel gelöscht oder verschoben wird. Davon zu unterscheiden ist der Hardlink, ein weiterer Name für denselben Inode.

Japanische Bezeichnung: シンボリックリンク

„Symbolischer Link (Symlink)“ kommt in 1 Übungsfragen aus 1 Themen vor, z. B. Grundlagen von Linux und der Kommandozeile.

Fachgebiet: Grundlagen von Linux und der Kommandozeile

Anlegen und Darstellung

Legt man ihn mit ln -s /opt/tools/sim-2.3 /opt/tools/sim an, wird beim Öffnen von /opt/tools/sim oder bei cd dorthin tatsächlich /opt/tools/sim-2.3 verwendet. ls -l zeigt „sim -> /opt/tools/sim-2.3“, und readlink oder realpath zeigen, wohin er führt. Die Zugriffsrechte des Links selbst werden nicht verwendet; maßgeblich sind die Rechte der Datei, zu der er führt.

Relative und absolute Pfade

Enthält der Link einen relativen Pfad, wird er ausgehend von dem Verzeichnis verfolgt, in dem der Link liegt. Das hat den Vorteil, dass die Beziehung erhalten bleibt, wenn man ein ganzes Verzeichnis an einen anderen Ort verschiebt; verschiebt man nur den Link, ist er jedoch defekt. Mit einem absoluten Pfad zeigt der Link, wohin man ihn auch verschiebt, auf denselben Ort, wird aber defekt, wenn sich die Struktur der Zielverzeichnisse ändert.

Unterschied zum Hardlink

Ein Hardlink fügt einen weiteren Namen hinzu, der auf denselben Inode zeigt, und der Inhalt bleibt erhalten, auch wenn der ursprüngliche Name gelöscht wird. Er lässt sich jedoch nur innerhalb desselben Dateisystems und normalerweise nicht für Verzeichnisse anlegen. Ein symbolischer Link speichert nur einen Pfad und kann daher Dateisystemgrenzen überschreiten und auf Verzeichnisse zeigen, wird aber defekt, wenn das Ziel verschwindet.

Häufige Fragen

Wofür werden symbolische Links verwendet?

Bekannt ist das Umschalten zwischen Werkzeugversionen. Zeigt /opt/tools/sim auf das Verzeichnis der neuesten Version, behalten die Skripte der Benutzer denselben Pfad, und die Version lässt sich allein durch Umsetzen des Links wechseln. Sie dienen auch zur Benennung von Shared Libraries, von libfoo.so auf libfoo.so.1.2, und dazu, aus einem Projekt heraus auf große Daten zu verweisen, die auf einer anderen Festplatte liegen.

Wie findet man defekte Links?

Existiert das Ziel nicht, das ls -l anzeigt, wird das in vielen Umgebungen farblich oder anders markiert. Mit GNU find listet find . -xtype l symbolische Links auf, die ins Leere führen. Der Versuch, einen defekten Link zu öffnen, endet mit dem Fehler „No such file or directory“.

„Symbolischer Link (Symlink)“ in den Erläuterungen

Fragen mit „Symbolischer Link (Symlink)“ (1)

  1. Welches Ergebnis liefern die letzten beiden cat-Befehle, wenn die obigen Befehle nacheinander ausgeführt werden?

Verwandte Begriffe

Hardlink Inode cron Ein-/Ausgabeumleitung Git grep Pipe (|) Regulärer Ausdruck (Regex) Shell SSH

Zur Glossarübersicht