Unter allen Betriebssystemen kennt man Links – um zu verstehen, was mit einem Link gemeint ist, kann man sich den Link zu einer anderen Webseite vorstellen. Nehmen wir einfach den Link zu Kernel.org – Sie klicken auf den Link und finden sich auf der verlinkten Seite wieder.
Ein Link ist so gesehen nichts anderes als eine Verknüpfung, in Dingen Dateien ganz einfach zu Dateien. Anders als unter Windows gibt es unter Linux zwei verschiedene Arten von Links. Hardlinks und Symlinks – Symlinks werden auch gerne als symbolische Links oder Softlinks bezeichnet.
Was sind Links eigentlich, wozu dienen sie?
Um zu verstehen, wozu beide Arten von Links dienen, müssen wir uns ein wenig mit dem Dateisystem befassen – egal welches, alle arbeiten in diesem Sinn gleich. Ein Dateisystem platziert Dateien, egal welcher Art, an einer beliebigen Stelle im Dateisystem. Um diese auch wiederzufinden, werden solche Links in einer Art Datenbank des Dateisystems gesetzt. Nun nehmen wir einen beliebigen Dateimanager – dieser zeigt uns nicht die realen Dateien, also etwa Bilder, PDF-Dateien oder was auch immer, sondern die Links zu Dateien. Löschen wir eine solche Datei, wird nicht die eigentliche Datei, sondern der Link zu dieser Datei gelöscht – die Datei bleibt noch immer gespeichert.
Nun wollen wir uns die beiden Arten von Links etwas genauer ansehen.
Inhaltsverzeichnis
Hardlinks
Jede Datei im lokalen Dateisystem (interne Festplatte auf der jeweiligen Partition) unter Linux besitzt einen Hardlink, einfach nur um diese im Dateisystem wiederzufinden:
In der Grafik oben sehen Sie ganz rechts das Dateisystem mit den darauf verteilten Dateien, in der Mitte die Datenbank des Dateisystems und ganz links, was wir etwa im Dateimanager sehen. Dateien 1 bis 4 besitzen einen Hardlink, sind somit im Dateimanager zu sehen und zu öffnen. Datei 5 wurde wie üblich ganz einfach gelöscht – besitzt daher keinen Hardlink mehr – ist aber noch vorhanden. Da Datei 5 keinen Hardlink mehr besitzt ist sie auch im Dateimanager nicht mehr zu sehen.
Die Anzahl der Hardlinks beträgt unter normalen Umständen „1„, eine Datei besitzt also einen Hardlink, dies lässt sich am Terminal mit dem Befehl:
ls -l
anzeigen – die Zeile nach den Zugriffsrechten zeigt die Anzahl der Hardlinks:
Hardlinks lassen sich nicht manuell anlegen, dies erledigt das Dateisystem automatisch beim Erstellen oder Speichern einer Datei.
Symlinks
Hardlinks haben ein Problem – Hardlinks lassen sich nur auf dem Dateisystem nutzen, auf dem auch die jeweilige Datei liegt. Man kann auch keine Hardlinks manuell erstellen. Hierfür dienen nun Symlinks.
Symlinks verweisen nicht direkt auf die Datei im Dateisystem, sondern auf den Hardlink. So ist es möglich auf Dateien auf anderen Dateisystemen (Partitionen zu verweisen), etwa auf andere Partitionen im lokalen Rechner, auf anderen Rechnern im Netzwerk oder auf externen Medien wie etwa einer externen Festplatte oder USB-Stick.
Symlinks lassen sich nun auch manuell erstellen und haben so den Vorteil etwa Dateien schneller zu öffnen, ohne das Verzeichnis zu öffnen, in dem sie liegen. Verknüpfungen zu Dateien am Desktop sind etwa Symlinks. Nehmen wir einmal an ich will unter KDE mit Dolphin eine Verknüpfung am Desktop zu einer Datei erstellen – ich ziehe die Datei auf den Desktop und wählen „Hierher verknüpfen„:
Eine weitere Möglichkeit wäre es einfach auf eine freie Stelle am Desktop rechts zu klicken und „Neu erstellen → Verknüpfung zu Datei oder Ordner“ zu wählen. Mit anderen Dateimanagern funktioniert dies ähnlich.
Symbolische Links lassen sich auch am Terminal mit dem Befehl „ln
“ und der Option „-s
“ erstellen. Die Syntax des Befehls sieht so aus:
ln -s Quelle Ziel
Als Beispiel möchte ich von der Datei „/home/robert/Dokumente/Rechnungen.odt“ eine Verknüpfung auf dem Desktop – in diesem Fall im Verzeichnis „Desktop“ anlegen:
ln -s /home/robert/Dokumente/Rechnungen.odt /home/robert/Desktop/
Sie können dem Symlink, also der Verknüpfung natürlich auch einen anderen Namen geben – ganz einfach:
ln -s /home/robert/Dokumente/Rechnungen.odt /home/robert/Desktop/Rechnungen_Verknüpfung.odt
2 Reaktionen
[…] SQL-Server mit dem Runit-Dienst (das Pendant zu Systemd unter Debian) verbunden. Man legt einen Symlink von “/etc/sv/mysqld/” in das Runit-Verzeichnis unter […]
[…] Start der Software zweimal den langen Pfad über /opt angeben müssen, erstellen Sie noch einen Symlink von main auf whisper (ebenfalls als […]