In Linux bieten Links eine Möglichkeit, auf Dateien oder Verzeichnisse zu verweisen, ohne Daten zu duplizieren. Das spart Platz und macht Systeme flexibler. Es gibt zwei Haupttypen: Softlinks und Hardlinks.
Softlinks
Soft Links werden auch symbolische Links genannt. Sie sind wie eine Verknüpfung ein Verweis auf eine Zieldatei oder einen Zielordner. Wenn das Ziel verschoben, umbenannt oder gelöscht wird, dann funktioniert der symbolische Link nicht mehr.
Erstellung
Mit diesem Schema kannst du Softlinks erstellen:
|
|
Ganz konkret könnte das so aussehen:
|
|
Anwendungsfall
Verwende Softlinks, wenn du einen Verweis auf eine Datei benötigst, die sich möglicherweise auf einem anderen Dateisystem befindet, oder wenn du eine Verknüpfung brauchst, die aktualisiert werden kann, wenn das Ziel verschoben wird.
Hardlinks
Ein Hardlink ist ein direkter Verweis auf die Daten auf der Festplatte. Mehrere Hardlinks teilen sich daher denselben Inode. Das Löschen der Originaldatei hat keine Auswirkungen auf den Hardlink, solange mindestens ein Link vorhanden ist.
Erstellung
Mit diesem Schema kannst du Hardlinks erstellen:
|
|
Ganz konkret könnte das so aussehen:
|
|
Anwendungsfall
Verwende Hardlinks, wenn du stabile Links brauchst, die auch dann funktionsfähig bleiben, wenn die Quelle verschoben, umbenannt oder gelöscht wird.
Links erkennen und Verweise finden
Softlinks erkennen
Softlinks haben in Datei-Listings den Typ l
und hinter den Namen steht -> /pfad/zur/quelle
.
Beispiel:
|
|
Softlinks finden
Soft Links kannst du mit dem Parameter lname
von find
aufspüren.
Beispiel:
|
|
Hardlinks erkennen
Hard Links haben in Datei-Listings einen Link-Count grösser als 1
.
Beispiel:
|
|
Hardlinks finden
Finden kannst du Hardlinks in zwei Schritten. Mit dem Parameter -i
von ls
ermittelst du zunächst den Inode. Dann suchst du mit find
nach allen Referenzen auf dieses Element.
Beispiel:
|
|
Wichtige Gemeinsamkeit
Egal, ob du die über Quelle oder über den Link den Inhalt editierst: Es wird immer in beiden sichtbar sein. Das gilt sowohl für Hard Links, als auch für Soft Links.
Die Berechtigungen für einen Softlink sind immer rwxrwxrwx
und können auch nicht geändert werden, sodass effektiv die Berechtigungen vom Quell-Element gelten. Und auch bei Hardlinks musst du beachten, dass die Berechtigungen auf Quelle und Ziel immer gleich sind, weil diese als Metadaten zum Inode gehören.
Wichtige Unterschiede
- Softlinks funktionieren über Partitionen hinweg, Hardlinks nicht
- Softlinks funktionieren nicht mehr, wenn ihre die Quelle verändert
- Hardlinks funktionieren so lange es mindestens einen Verweis auf den dazugehörigen Inode gibt
Empfehlungen
- immer für Quelle und Ziel kompletten Pfad verwenden, das ist robuster für das Verschieben der Quelle
- lässt man den Namen für den Link weg, so wird automatisch der Name vom Quell-Element verwendet
Hilfe erhalten
Wenn du mehr zu Links unter Linux wissen möchtest, dann empfehle ich dir diese Befehle:
|
|
Für den Befehl tldr
musst du das gleichnamige Paket tldr
installieren.