Wozu dienen Links? Warum gibt es zwei Arten?
Links sind Verknüpfungen im Dateisystem. Sie ermöglichen, dass eine Datei oder ein Verzeichnis an mehreren Stellen sein kann. Es gibt Soft- und Hardlinks. Ein Softlink kann sowohl von Dateien als auch von Verzeichnissen erstellt werden und ist in seiner Reichweite nicht eingeschränkt. Technisch gesehen ist es eine Umleitung, von einer Stelle an eine andere Stelle im Dateisystem oder sogar auf einen anderen Server. Von einem Linux-Programm wird erwartet, dass es einen Link genauso behandelt wie die Datei bzw. das Verzeichnis an dieser Stelle.
Ein Hardlink ist keine Verknüpfung, sondern eine Datei, die an zwei Orten existiert. Deshalb können Hardlinks auch nur innerhalb desselben Dateisystems erstellt werden. Auch können Verzeichnisse nicht als Hardlink erstellt werden, u. a., um die Möglichkeit einer endlosen Rekursion auszuschließen.
Links werden z.B. intern verwendet, um verschiedene Versionen einer Anwendung zu haben. python, python3 und python.3.13 sind alle dieselbe Datei. Damit startet der Befehl python
automatisch immer die aktuellste Version, auch wenn das mitlerweile python.3.14 ist. Es sei denn, ich möchte sichergehen, dass python 13 gestartet wird, dann kann ich das mit python.3.13
sicherstellen, auch wenn python mitlerweile 3.14 starten würde.
Wozu benötigst du das?
Ich nutze Softlinks sehr gerne, um bequem auf Dateien zuzugreifen. So können etwa Projektdateien so abgelegt sein, dass ich sie so auch in ein paar Jahren noch finde und Dateien für aktuelle Projekte direkt auf dem Desktop liegen. Oder Dateien, die eigentlich auf meinem Nextcloud-Server liegen, sind auf meinem Desktop verlinkt.
Ist das nicht das Gleiche wie Verknüpfungen unter Windows?
Nein! Diese Shortcuts unter Windows dienen nur dazu, Programme auf dem Desktop hübsch aussehen zu lassen. So was findest du unter Linux auch. Windows kennt Softlinks als Junktions. Um sie zu nutzen, musst du ein Zusatzprogramm installieren und einige Systemprogramme haben Probleme damit, weshalb sie eher wenig verbreitet sind.