Linux - Was sind Hard- und Softlinks?

5 Antworten

Gerne wird dieser Eigenschaft von hardlinks verwendet:

Du legst hardlinks von Datein in einem anderen Verzeichnis an, dann löschst Du (vielleicht aus Versehen) eine oder mehrer dieser Dateien - die sind dann aber noch nicht ganz weg - die hardlinks (welche ja genau die selben Dateien darstellen) sind ja noch da. Also nix verloren.

Sorry, das hätte eigentlich ein Kommentar sein sollen auf deine Frage, wofür hardlinks verwendet werden können, aber da hab ich auf den falschen Link geklickt.

Woher ich das weiß:Berufserfahrung – LPI zertifiziert

Unix (Linux) Dateisysteme sind mit Verzeichnissen ausgestattet. Darin werden, wie im Inhaltsverzeichnis einenes Buches Einträge zu Dateien und untergeordneten Verzeichnissen gespeichert, die neben Namen, "wann erstellt", "wann geändert", wie groß , wem gehört sie , welche Rechte hat der Besitzer ... und "wo steht die Datei" ( der Anfang)

Es ist also kein Problem . mehrere praktisch gleiche Zeilen in so ein Verzeichnis zu schreiben. Hier bietet sich die Möglichkeit, zum Eintrag "wo steht die Datei" verschiedene Namen anzugeben. "wo steht die Datei" sind aber sogenannte Pointer, Zeiger mit Informationen die nur innerhalb der jeweiligen Partition Sinn machen.

So kann man für den Linux-befehl ls einen Link mit dem Namen dir anlegen.

Wer sich nicht von Windows lösen kann, kann so einige Befehle auch in "windowisch" haben.

Solche hard-links können nur innerhalb einer Partition angelegt und benutzt werden.

Für Verweise über diese Grenzen hinweg, gibt es die Softlinks.

Das sind dann Dateien, in denen nicht mehr die oben genannten Zeiger, sondern Namen im Klartext stehen. Die sind dann auch überall gültig und nicht auf Partitionen beschränkt. Die Namen müssen aber den gesamten Pfad als Verweis enthalten.

Wie bei Hard-links können auch Softlinks mit beliebigen Namen angelegt werden.

Wird ein Softlinks gelöscht, ist nur diese "Hilfsdatei" weg. Wird ein Hard-links gelöscht, wird, wenn es der letzte Name ist, auch die Datei gelöscht.

Woher ich das weiß:Berufserfahrung – openSuSE seit 1995

Eine Datei kann auf einem Datenträger mehrere Namen haben, die auch in unterschiedlichen Verzeichnissen liegen. Diese Dateinamen sind sogenannte Hardlinks, denn sie verweisen auf exakt die gleiche physische Stelle im Dateisystem.

Ein Softlink ist eine spezielle Datei, die auf einen anderen Dateinamen (egal ob auf dem gleichen Dateisystem oder anderswo) verweist. Softlinks können (im Gegensatz zu Hardlinks) auch für Verzeichnisse erstellt werden.

hier mal die erklärung wann man was nimmt

https://krausens-online.de/hard-softlinks-teil-1-theorie-laaaangweilig/

und vor allem welchen vorteil es bringt.

hardlink hat den vorteil das sie wirkliche dateien/ordner sind die man an verschiedenen orten gebrauchen kann .

auch dateirechte/zugriffsrechte sind da ein wichtiges detail .

Softlinks sind wie Verweise auf den Namen einer anderen Datei, während ein hardlink auf den "body", den "Inhalt" der anderen Datei, verweist.

Nennst du das Ziel eines softlinks um, wird das Ziel vom softlink nicht mehr referenziert. Nennst du das Ziel eines hardlinks um, bleibt der Verweis vom hardlink zum Ziel erhalten.

Woher ich das weiß:Berufserfahrung – LPI zertifiziert

verreisterNutzer  13.05.2022, 13:05

Sind das also Kopien der original Dateien oder ledeglich nur Verweise ?

0
Bushmills145  13.05.2022, 13:05
@verreisterNutzer

Nein, es sind keine Kopien. Es sind nur Verweise.

Stell Dir das Ziel eines hardlinks in etwa etwa als Datei, die mehrere Namen hat, vor" Softlinks dagegen als weitere Datei, die lediglich namentlich auf eine andere verweist.

1
Bushmills145  13.05.2022, 13:18
@HarryXXX

Üblicher Name für softlinks ist auch "symlinks", symbolische links, was sich wohl auf den Dateinamen als link-Ziel bezieht.

0
HarryXXX  13.05.2022, 13:22
@Bushmills145

Symbolische Links beziehen sich auf Verzeichnisse oder Dateien und können auch Dateisystem Grenzen überschreiten. Löscht man bei einem symbolic Link die Zieldatei oder das Zielverzeichnis dann zeigt der Link ins Leere.

Ein Hardlink funktioniert nur innerhalb des gleichen file systems. Man kann einen der Link Namen löschen und der andere Name, sowie auch der File Inhalt, bleiben erhalten. Hardlinks begegnen einem in der Praxis relativ selten.

0
Bushmills145  13.05.2022, 13:23
@HarryXXX

Ausserdem sind symlinks (softlinks) geeigneter um auf Verzeichnisnamen zu verweisen. Für hardlinks ist das keine so gute Idee, und müsste, so man das wirklich denn wollte, erst mittels extra option erzwungen werden.

0