Ein symbolischer Verweis (auch Symlink oder Soft-Link genannt) ist ein Verzeichniseintrag in einem Dateisystem, der auf einen anderen Verzeichniseintrag verweist. Dabei kann es sich sowohl um Verweise auf Verzeichnisse als auch Dateien handeln.

Beispiel:

linuxwiki.de:~# cd /usr/src
linuxwiki.de:/usr/src# ln -s linux-2.4.18 linux
linuxwiki.de:/usr/src# ls -l linux
lrwxrwxrwx    1 root     root            9 Mär 24 12:26 linux -> linux-2.4.18
Tipp

Wer sich nicht die Argumentreihenfolge merken kann, merkt sich einfach, dass es wie beim cp-Befehl ist. ;) Wenn es symbolische Links gibt, gibt es natürlich auch nicht-symbolische, die heißen dann HardLinks.

Tipp

Um existente Links zu überschreiben, verwendet man die Optionen -nfs (no-follow, force overwrite, symbolic). Angenommen, "foo" verweist auf das Directory "bar", und wir wollen, daß "foo" auf "baz" verweist, dann erzeugt nämlich das Kommando "ln -s baz foo" einen neuen Link in "bar" ("bar/baz ==> baz"). "ln -nfs bar foo" dagegen verbiegt den Link auf "baz", wie gewünscht ("foo ==> baz").

Tipp

readlink liefert die Datei, auf die der Link zeigt (das gibt es übrigens auch als Funktion für Programme).

Tipp
Programmierer können mit der Funktion "lstat" die Daten eines Links abfragen, "stat" verfolgt nämlich den Link automatisch und liefert die Daten des Eintrags, auf den ein Link verweist.
Anmerkung

Unter alten Windows-Dateisystemen gab es sowas bisher nicht (d.h. vor Windows Vista / Server 2008 ), deshalb musste dort auch eine Krücke via *.lnk-Dateien gemacht werden, um etwas ähnliches zu erreichen. Allerdings ermöglicht das frei erhältliche Programm "Junction" Windows-Nutzern die Verwendung von Symlinks auf NTFS-Partitionen wenigstens für Verzeichnisse. Weitere Infos: https://technet.microsoft.com/de-de/sysinternals/bb896768.aspx Aktuelle Windows Systeme (d.h. >= Windows Vista / Server 2008) können den "MKLINK-Befehl benutzen". Weitere Infos: http://technet.microsoft.com/de-de/library/cc753194%28WS.10%29.aspx

SymLink (zuletzt geändert am 2010-09-21 13:55:46 durch p548E0584)