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