Ln: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) KKeine Bearbeitungszusammenfassung |
Tuxnix (Diskussion | Beiträge) |
||
(2 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{SEITENTITEL:ln}} | {{SEITENTITEL:ln}} | ||
Mit dem Programm | Mit dem Programm {{ic|ln}} ist es möglich, ''Links'' auf Dateien zu erzeugen. Bei diesen Links wird zwischen ''Hardlinks'' und ''symbolischen Links'', auch ''Softlinks'' genannt, unterschieden. | ||
== Hardlinks == | == Hardlinks == | ||
Zeile 13: | Zeile 13: | ||
Man kann keine Hardlinks auf Verzeichnisse setzen, da dies bei Programmen, die rekursiv das Dateisystem durchlaufen (z.B. eine Suche) zu einer Endlosschleife führen kann. | Man kann keine Hardlinks auf Verzeichnisse setzen, da dies bei Programmen, die rekursiv das Dateisystem durchlaufen (z.B. eine Suche) zu einer Endlosschleife führen kann. | ||
Wenn man wissen möchte, wie viele Hardlinks, auf eine Datei verweisen, kann man sich des Befehls | Wenn man wissen möchte, wie viele Hardlinks, auf eine Datei verweisen, kann man sich des Befehls {{ic|ls -l}} bedienen. Die Angabe hinter den Zugriffsrechtsinformationen gibt die Anzahl der Hardlinks auf die entsprechende Datei an. | ||
{{hc|ls -l|[…] | |||
-rw-r--r-- 2 user group 4,0K 16. Dez 13:44 file1 | |||
-rw-r--r-- 2 user group 4,0K 16. Dez 13:44 file2}} | |||
Im Beispiel verweisen also zwei Hardlinks auf die Datei | Im Beispiel verweisen also zwei Hardlinks auf die Datei {{ic|file1}}. Dies ist ein mal die Datei {{ic|file1}} selbst, sowie die Datei {{ic|file2}}, welche ein Hardlink auf den selben Teil der Festplatte darstellt. {{ic|file2}} verfügt ebenfalls über zwei Hardlinks, nämlich {{ic|file2}} selbst, sowie {{ic|file1}}. Da es keinen „Original-Hardlink“ gibt, werden alle Hardlinks als „dieser und die anderen“ gezählt. | ||
Wenn man jetzt ein | Wenn man jetzt ein {{ic|file3}} als Hardlink auf {{ic|file1}} oder {{ic|file2}} erstellen würde, hätten alle drei Dateien die Angabe von drei Hardlinks. Da Hardlinks direkt auf die jeweiligen Positionen auf der Festplatte verweisen, ist es unwichtig, ob die Datei, auf die man den Hardlink erstellt hat, im Nachhinein gelöscht wird. | ||
== Softlinks == | == Softlinks == | ||
Ein symbolischer Link hingegen ist ein Zeiger auf einen anderen Dateisystemeintrag und nicht auf die Position der Datei auf der Festplatte. Bei einem | Ein symbolischer Link hingegen ist ein Zeiger auf einen anderen Dateisystemeintrag und nicht auf die Position der Datei auf der Festplatte. Bei einem {{ic|ls -l}} wird das Linkziel angezeigt, zudem werden Softlinks nicht gezählt. | ||
{{hc|ls -l|[…] | |||
-rw-r--r-- 1 user group 551 21. Nov 11:17 file1 | |||
lrwxrwxrwx 1 user group 2 18. Dez 11:59 file2 -> file1}} | |||
Im Beispiel ist | Im Beispiel ist {{ic|file2}} ein Softlink auf {{ic|file1}}. Wenn man {{ic|file1}} nun löschen würde, würde der Softlink nach wie vor noch bestehen und auf die Datei verweisen, allerdings gibt es die Datei nicht mehr, und der Link ist ungültig. Softlinks können im Gegensatz zu Hardlinks auch auf Verzeichnisse erstellt werden. Softlinks werden wie folgt erstellt: | ||
$ ln -s zieldatei linkname | $ ln -s zieldatei linkname | ||
Neben dem Parameter | Neben dem Parameter {{ic|-s}} gibt es noch weitere Möglichkeiten, das Erstellen der Links zu beeinflussen. Zudem kann man sowohl relative, als auch absolute Zieldateiangaben machen. Wenn der Softlink dann verschoben wird, kann er ungültig werden, daher ist zu empfehlen, immer absolute Quelldateiangaben zu machen. Bei Hardlinks ist dies jedoch irrelevant. | ||
[[Kategorie:Konsole]] | [[Kategorie:Konsole]] | ||
[[Kategorie:Befehle]] | |||
[[Kategorie:Grundlagen]] | [[Kategorie:Grundlagen]] |
Aktuelle Version vom 1. April 2017, 15:20 Uhr
Mit dem Programm ln
ist es möglich, Links auf Dateien zu erzeugen. Bei diesen Links wird zwischen Hardlinks und symbolischen Links, auch Softlinks genannt, unterschieden.
Hardlinks
Durch einen Hardlink erzeugt man einen neuen Namen an einem neuen Ort im Dateisystem für eine Datei, so dass man auf die Datei sowohl vom alten Ort, als auch vom neuen gleichermaßen erreichen kann, da die Einträge im Dateisystem nur Verweise auf den Speicherort auf der Festplatte sind.
Bei mehreren Hardlinks auf einen Speicherbereich der Festplatte kann man nicht mehr sagen, welcher Link die „Originaldatei“ ist, da alle Links gleichberechtigt auf die Daten auf der Festplatte verweisen. Wenn der letzte vorhandene Hardlink entfernt wird, ist der Speicherort auf der Festplatte nicht mehr ohne weiteres erreichbar, umgangssprachlich ist dies das Löschen einer Datei.
Hardlinks werden wie folgt gesetzt:
$ ln zieldatei linkname
Man kann keine Hardlinks auf Verzeichnisse setzen, da dies bei Programmen, die rekursiv das Dateisystem durchlaufen (z.B. eine Suche) zu einer Endlosschleife führen kann.
Wenn man wissen möchte, wie viele Hardlinks, auf eine Datei verweisen, kann man sich des Befehls ls -l
bedienen. Die Angabe hinter den Zugriffsrechtsinformationen gibt die Anzahl der Hardlinks auf die entsprechende Datei an.
ls -l
[…] -rw-r--r-- 2 user group 4,0K 16. Dez 13:44 file1 -rw-r--r-- 2 user group 4,0K 16. Dez 13:44 file2
Im Beispiel verweisen also zwei Hardlinks auf die Datei file1
. Dies ist ein mal die Datei file1
selbst, sowie die Datei file2
, welche ein Hardlink auf den selben Teil der Festplatte darstellt. file2
verfügt ebenfalls über zwei Hardlinks, nämlich file2
selbst, sowie file1
. Da es keinen „Original-Hardlink“ gibt, werden alle Hardlinks als „dieser und die anderen“ gezählt.
Wenn man jetzt ein file3
als Hardlink auf file1
oder file2
erstellen würde, hätten alle drei Dateien die Angabe von drei Hardlinks. Da Hardlinks direkt auf die jeweiligen Positionen auf der Festplatte verweisen, ist es unwichtig, ob die Datei, auf die man den Hardlink erstellt hat, im Nachhinein gelöscht wird.
Softlinks
Ein symbolischer Link hingegen ist ein Zeiger auf einen anderen Dateisystemeintrag und nicht auf die Position der Datei auf der Festplatte. Bei einem ls -l
wird das Linkziel angezeigt, zudem werden Softlinks nicht gezählt.
ls -l
[…] -rw-r--r-- 1 user group 551 21. Nov 11:17 file1 lrwxrwxrwx 1 user group 2 18. Dez 11:59 file2 -> file1
Im Beispiel ist file2
ein Softlink auf file1
. Wenn man file1
nun löschen würde, würde der Softlink nach wie vor noch bestehen und auf die Datei verweisen, allerdings gibt es die Datei nicht mehr, und der Link ist ungültig. Softlinks können im Gegensatz zu Hardlinks auch auf Verzeichnisse erstellt werden. Softlinks werden wie folgt erstellt:
$ ln -s zieldatei linkname
Neben dem Parameter -s
gibt es noch weitere Möglichkeiten, das Erstellen der Links zu beeinflussen. Zudem kann man sowohl relative, als auch absolute Zieldateiangaben machen. Wenn der Softlink dann verschoben wird, kann er ungültig werden, daher ist zu empfehlen, immer absolute Quelldateiangaben zu machen. Bei Hardlinks ist dies jedoch irrelevant.