Der Befehl ln
In diesem Beitrag lernen Sie den Befehl ln kennen, welcher unter UNIX- / Linux dazu verwendet wird, um Verknüpfungen zu Dateien oder Verzeichnissen zu erstellen. ln ist Bestandteil des Pakets "coreutils" und ist in der Regel bereits auf einem UNIX- / Linux-System vorinstalliert.
Es wird dabei zwischen Softlinks (oder symbolischen Links) und Hardlinks unterschieden. Sie bewirken zwar in etwa dasselbe, sind aber technisch unterschiedlich realisiert.
Allgemeine Syntax
Die allgemeine Syntax des Befehls ln lautet:
ln [OPTION]... ZIEL [VERKNÜPFUNGSNAME]
Die allgemeine Syntax zum Verlinken mehrerer Dateien in ein Verzeichnis lautet:
ln [OPTION]... ZIELE... LINKVERZEICHNIS
Hardlinks
Jede Datei in Linux hat mindestens einen Hardlink. Dabei handelt es sich lediglich um einen Eintrag im Dateisystem mit einem Namen, der auf den tatsächlichen Speicherplatz der Datei zeigt. Bei einem Verzeichnis beispielsweise ist der Name und der "." innerhalb des Verzeichnisses je ein Hardlink mit demselben Ziel. Weiterhin ist in Verzeichnissen noch ".." enthalten, welches ein Hardlink zum übergeordneten Verzeichnis ist. Verzeichnisse in Verzeichnissen, also Unterverzeichnisse, sind auch jeweils Hardlinks.
Mit dem Befehl "ls -l" können Sie in der zweiten Spalte die Anzahl der gesetzten Hardlinks der jeweiligen Dateien/Verzeichnisse sehen. Jeder Hardlink ist mit demselben Ziel absolut gleichwertig. Werden Inhalt oder Datei-Attribute verändert, wirkt sich dies auf alle Links derselben Datei aus. Eine Datei ist erst wirklich gelöscht, wenn alle Links auf eine Datei entfernt wurden.
Es ist nicht möglich, Hardlinks über die Grenzen von Dateisystemen hinweg zu setzen. Dies können Sie allerdings mit "symbolischen Verknüpfungen" (Softlink) erreichen.
Softlinks
Bei Softlinks (auch "symbolische Verknüpfungen", "Symlinks" oder schlicht "Verknüpfungen" genannt) handelt es sich, ähnlich wie bei HTML-Links auf Webseiten, um kleine Dateien mit gesetztem l-Bit, die den Pfad einer Zieldatei enthalten. Der Pfad kann dabei ein relativer als auch ein absoluter sein. Das Ziel eines Softlinks wird nach Ausführung des Befehls "ls -l" nach einem Pfeil -> angezeigt.
Im Gegensatz zu Hardlinks fehlt Softlinks die direkte Verbindung zum tatsächlichen Speicherplatz der Zieldatei. Die Verknüpfung bleibt als "toter Link" zurück und zeigt ins Leere, sollte die Zieldatei gelöscht werden. Dies kann auch passieren, wenn die Zieldatei verschoben wird, insbesondere bei Verwendung eines absoluten Pfades im Softlink.
Die wichtigsten Optionen
Folgende wichtige Optionen können mit dem Befehl ln verwendet werden:
-s (--symbolic) - Symbolische Verknüpfung erzeugen
Mit dieser Option legen Sie anstatt eines Hardlinks eine symbolische Verknüpfung an.
ln -s ZIEL [VERKNÜPFUNGSNAME]
Beispiel: Option -s
In diesem Beispiel wird Ihnen gezeigt, wie ein Softlink, also eine symbolische Verknüpfung, im Verzeichnis /home/hellberg/profi-tutorials/grundlagen/ auf die Datei /home/hellberg/profi-tutorials/netzwerke/iso-osi-schichtenmodell.txt erstellt wird.
Eingabe:
ln -s /home/hellberg/profi-tutorials/netzwerke/iso-osi-schichtenmodell.txt /home/hellberg/profi-tutorials/grundlagen/7-schichten.txt
Ausgabe:
Im folgenden Bild können Sie den erstellten Softlink sehen, wie der Befehl ls -l ihn ausgibt. Die Ausgabe der neu erzeugten Datei "7-schichten.txt" zeigt den Inhalt der eigentlichen Datei an.
-i (--interactive) - Interaktiv
Mit der Option -i (oder --interactive) werden Sie jedesmal, wenn eine Verknüpfung überschrieben werden würde, nachgefragt.
ln -i ZIEL [VERKNÜPFUNGSNAME]
-f (--force) - Überschreiben von vorhandenen Verknüpfungen
Mit dieser Option -f (oder --force) werden gleichnamige Verknüpfungen oder auch Dateien mit dem [VERKNÜPFUNGSNAME]n überschrieben.
ln -f ZIEL [VERKNÜPFUNGSNAME]
Abonniere JETZT unseren Newsletter!
Verpasse nie wieder neue Beiträge und exklusive Insider-Only-Inhalte!