LPIC101/104.6 Harte und symbolische Links anlegen und ändern: Unterschied zwischen den Versionen

Aus Foxwiki
Khalilalim (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(28 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Wichtigste Wissensgebiete ==
# Links anlegen
# harte und/oder symbolische Links identifizieren
# Dateien kopieren vs. verlinken
# Links verwenden, um Systemadministrationsaufgaben zu unterstützen


== Wichtigste Wissensgebiete: ==
== Wichtiger Dateien, Verzeichnisse und Anwendungen ==
#Links anlegen
*[[Linuxbefehle (Liste)|ln]]
#harte und/oder symbolische Links identifizieren
* [[ls|ls]]
#Dateien kopieren vs. verlinken
#Links verwenden, um Systemadministrationsaufgaben zu unterstütze
<br>
== Wichtiger Dateien, Verzeichnisse und Anwendungen:==
*ln
* [[ls]]
<br>


== Allgemeines ==
== Allgemeines ==
*Wenn  es  ermöglicht  werden  soll,  auf  eine  Datei  von  verschiedenen  Verzeichnissen aus zuzugreifen,  
* Wenn  es  ermöglicht  werden  soll,  auf  eine  Datei  von  verschiedenen  Verzeichnissen aus zuzugreifen,
*können Sie auf diese Datei einen Link legen, anstatt die Datei in dieverschiedenen Verzeichnisse  zu  kopieren.  Das  hat  im  Wesentlichen  zwei  Vorteile: Einerseits  sparen  Links  Platz  auf  dem  Datenträger,  
* können Sie auf diese Datei einen Link legen, anstatt die Datei in die verschiedenen Verzeichnisse  zu  kopieren.  Das  hat  im  Wesentlichen  zwei  Vorteile: Einerseits  sparen  Links  Platz  auf  dem  Datenträger,
* weil  eine  Datei  nicht  mehrfach vorhanden sein muss, wenn sie über mehr,als nur einen Pfad bereitgestellt werden soll.
* weil  eine  Datei  nicht  mehrfach vorhanden sein muss, wenn sie über mehr,als nur einen Pfad bereitgestellt werden soll.
* Andererseits wird die Administration vereinfacht, weil man nicht mehrere Ver-sionen einer Datei pflegen muss.
* Andererseits wird die Administration vereinfacht, weil man nicht mehrere Versionen einer Datei pflegen muss.
<br>
[[Datei:SoftHardlink.jpg]]
 
=== Softlinks ===
=== Softlinks ===
Softlinks  werden  auch  als  symbolische  Links  bezeichnet.  Ein  Softlink  ist  im  Prinzip ein Zeiger, der auf eine Datei zeigt. Er belegt nur wenig Speicherplatz auf dem Datenträger, auf dem er angelegt wurde. Die Besonderheiten eines Softlinks sind:
Softlinks  werden  auch  als  symbolische  Links  bezeichnet.  Ein  Softlink  ist  im  Prinzip ein Zeiger, der auf eine Datei zeigt. Er belegt nur wenig Speicherplatz auf dem Datenträger, auf dem er angelegt wurde. Die Besonderheiten eines Softlinks sind
*Er kann sowohl auf Dateien als auch auf Verzeichnisse verweisen.
* Er kann sowohl auf Dateien als auch auf Verzeichnisse verweisen.
 
* Er kann auf Dateien und Verzeichnisse einer anderen oder der Partition angewandt werden, auf der er sich selbst befindet.
*Er kann auf Dateien und Verzeichnisse einer anderen oder der Partition angewendet werden, auf der er sich selbst befindet.
* Er  verwendet  die  Dateiberechtigungen  der  Zieldatei  und  ist  deshalb  immer  mit Lese-, Schreib- und Ausführungsrechten versehen.
 
* Ein  Softlink  bleibt  bestehen,  wenn  die  Zieldatei  gelöscht  wird.  Man  bezeichnet einen solchen verwaisten Link auch als gebrochenen Link.
*Er  verwendet  die  Dateiberechtigungen  der  Zieldatei  und  ist  deshalb  immer  mit Lese-, Schreib- und Ausführungsrechten versehen.
 
*Ein  Softlink  bleibt  bestehen,  wenn  die  Zieldatei  gelöscht  wird.  Man  bezeichnet einen solchen verwaisten Link auch als gebrochenen Link.<br>


 
Die folgenden kommentierten Kommandos demonstrieren das Verhalten von Softlinks. Das erste Kommando ln-s erzeugt einen Softlink mit der Bezeichnung
Die folgenden kommentierten Kommandos demonstrieren das Verhalten von Softlinks. Das erste Kommando ln-s erzeugt einen Softlink mit der Bezeichnung  
softlink,der  auf  die  existierende  Datei file1 verweist.  Mit  dem  zweiten  Kommando  wird  das Ergebnis der Aktion überprüft
softlink,der  auf  die  existierende  Datei file1 verweist.  Mit  dem  zweiten  Kommando  wird  das Ergebnis der Aktion überprüft
104.6
Harte und symbolische Links anlegen und ändern
209
  archangel:/testfiles # ln -s file1 softlink
  archangel:/testfiles # ln -s file1 softlink
  archangel:/testfiles # ls -l
  archangel:/testfiles # ls -l
Zeile 40: Zeile 32:
  -rw-r--r--  1 root root 35184 Jan  2 17:55 file1
  -rw-r--r--  1 root root 35184 Jan  2 17:55 file1
  lrwxrwxrwx  1 root root    5 Jan  2 18:00 softlink -> file1
  lrwxrwxrwx  1 root root    5 Jan  2 18:00 softlink -> file1
Die erste Spalte der letzten Zeile des Kommandos ls-l zeigt an, dass es sich um einen Link handelt. Beachten Sie bitte auch, dass in der Zugriffssteuerungsliste alle Rechte gesetzt sind. Wenn Sie nun den Modus dieses Links verändern, ändert sich stattdes-sen der Modus der Zieldatei:
Die erste Spalte der letzten Zeile des Kommandos ls-l zeigt an, dass es sich um einen Link handelt. Beachten Sie bitte auch, dass in der Zugriffssteuerungsliste alle Rechte gesetzt sind. Wenn Sie nun den Modus dieses Links verändern, ändert sich stattdes-sen der Modus der Zieldatei
<br>


  archangel:/testfiles # chmod a+w softlink
  archangel:/testfiles # chmod a+w softlink
Zeile 50: Zeile 41:
  -rw-rw-rw-  1 root root 35184 Jan  2 17:55 file1
  -rw-rw-rw-  1 root root 35184 Jan  2 17:55 file1
  lrwxrwxrwx  1 root root    5 Jan  2 18:00 softlink -> file1
  lrwxrwxrwx  1 root root    5 Jan  2 18:00 softlink -> file1
<br>


Das erste Kommando fügt zu softlink Schreibrechte für alle hinzu. Diese Rechte werden  aber  stattdessen  der  Datei file1 hinzugefügt,wie Sie sehen.Es  gibt  mehrere Methoden, sich die Auswirkungen von Links anzusehen. Mit dem Kommando ls-li kann  z. B. nachgewiesen  werden,  dass  die Zieldatei und der Softlink  zwei  verschiedene Inodes verwenden:<br>
Das erste Kommando fügt zu softlink Schreibrechte für alle hinzu. Diese Rechte werden  aber  stattdessen  der  Datei file1 hinzugefügt,wie Sie sehen.Es  gibt  mehrere Methoden, sich die Auswirkungen von Links anzusehen. Mit dem Kommando ls-li kann  z.&nbsp;B.&nbsp; nachgewiesen  werden,  dass  die Zieldatei und der Softlink  zwei  verschiedene Inodes verwenden


  archangel:/testfiles # ls -li
  archangel:/testfiles # ls -li
Zeile 60: Zeile 50:
  1896921 -rw-rw-rw-  1 root root 35184 Jan 2 17:55 file1
  1896921 -rw-rw-rw-  1 root root 35184 Jan 2 17:55 file1
  1896920 lrwxrwxrwx  1 root root    5 Jan 2 18:00 softlink -> file1
  1896920 lrwxrwxrwx  1 root root    5 Jan 2 18:00 softlink -> file1
Die Datei file1 verwendet den Inode 1896921, während der Softlink softlink den Inode 1896920 belegt. Mit dem Kommando stat kann Ähnliches nachgewiesen werden:
Die Datei file1 verwendet den Inode 1896921, während der Softlink softlink den Inode 1896920 belegt. Mit dem Kommando stat kann Ähnliches nachgewiesen werden
  archangel:/testfiles # stat softlink
  archangel:/testfiles # stat softlink
  File: `softlink' -> `file1'
  File: `softlink' -> `file1'
Zeile 69: Zeile 59:
  Modify: 2017-01-02 18:00:07.000000000 +0100
  Modify: 2017-01-02 18:00:07.000000000 +0100
  Change: 2017-01-02 18:00:07.000000000 +0100
  Change: 2017-01-02 18:00:07.000000000 +0100
<br>


In  der  zweiten  Zeile  der  Kommandoausgabe  wird  angezeigt, dass es sich um einen symbolischen Link handelt. Die Zugriffsrechte sind auch noch einmal deutlich dargestellt. Wenden Sie dasselbe Kommando auf die Zieldatei des Links an, ergibt sich folgendes Bild:
In  der  zweiten  Zeile  der  Kommandoausgabe  wird  angezeigt, dass es sich um einen symbolischen Link handelt. Die Zugriffsrechte sind auch noch einmal deutlich dargestellt. Wenden Sie dasselbe Kommando auf die Zieldatei des Links an, ergibt sich folgendes Bild
  archangel:/testfiles # stat file1
  archangel:/testfiles # stat file1
  File: `file1'
  File: `file1'
Zeile 80: Zeile 69:
  Modify: 2017-01-02 17:55:38.000000000 +0100
  Modify: 2017-01-02 17:55:38.000000000 +0100
  Change: 2017-01-02 18:01:03.000000000 +0100
  Change: 2017-01-02 18:01:03.000000000 +0100
Die  zweite  Zeile  besagt,  dass  es  sich  um eine  gewöhnliche  Datei  handelt.  Auch  hier sieht man deutlich, dass die Zieldatei und der Softlink zwei verschiedene Inodes verwenden.<br>
Die  zweite  Zeile  besagt,  dass  es  sich  um eine  gewöhnliche  Datei  handelt.  Auch  hier sieht man deutlich, dass die Zieldatei und der Softlink zwei verschiedene Inodes verwenden.


Mit  den  nächsten Kommandos wird  demonstriert,  was  geschieht,  wenn  Sie  die Zieldatei eines symbolischen Links löschen, den Link selbst aber nicht:
Mit  den  nächsten Kommandos wird  demonstriert,  was  geschieht,  wenn  Sie  die Zieldatei eines symbolischen Links löschen, den Link selbst aber nicht
archangel:/testfiles # rm file1<br>
archangel:/testfiles # rm file1


Die Zieldatei ist nun gelöscht:<br>
Die Zieldatei ist nun gelöscht


  archangel:/testfiles # ls -l
  archangel:/testfiles # ls -l
Zeile 92: Zeile 81:
  drwxr-xr-x  24 root root 4096 Jan  2 17:55 ..
  drwxr-xr-x  24 root root 4096 Jan  2 17:55 ..
  lrwxrwxrwx  1 root root    5 Jan  2 18:00 softlink -> file1
  lrwxrwxrwx  1 root root    5 Jan  2 18:00 softlink -> file1
<br>
 
Der  Softlink  ist,  wie  Sie  sehen,  bestehen geblieben.  Wenn  Sie  nun  versuchen,  über diesen  Link  auf  die  nicht  mehr  existieren
Der  Softlink  ist,  wie  Sie  sehen,  bestehen geblieben.  Wenn  Sie  nun  versuchen,  über diesen  Link  auf  die  nicht  mehr  existieren
de  Datei  zuzugreifen,  erhalten  Sie  jedoch eine Fehlermeldung:
de  Datei  zuzugreifen,  erhalten  Sie  jedoch eine Fehlermeldung
 
  archangel:/testfiles # cat softlink
  archangel:/testfiles # cat softlink
  cat: softlink: No such file or directory  
  cat: softlink: No such file or directory


Ein typisches Beispiel für die praktische Verwendung von Softlinks sind die Verlinkungen der init-Skripte, die beim Systemstart abgearbeitet werden. »Runlevel wechseln und das System anhalten oder neu starten«, behandelt. Sie sehen hier einen Teil der Links, die zum Runlevel 3 eines Systems gehören:
Ein typisches Beispiel für die praktische Verwendung von Softlinks sind die Verlinkungen der init-Skripte, die beim Systemstart abgearbeitet werden. »Runlevel wechseln und das System anhalten oder neu starten«, behandelt. Sie sehen hier einen Teil der Links, die zum Runlevel 3 eines Systems gehören


  archangel:/etc/rc.d/rc3.d # ls -l
  archangel:/etc/rc.d/rc3.d # ls -l
Zeile 110: Zeile 98:
  lrwxrwxrwx  1 root root    8 Jul 20  2017 K05squid -> ../squid*
  lrwxrwxrwx  1 root root    8 Jul 20  2017 K05squid -> ../squid*
  ... weitere Zeilen wurden entfernt ...
  ... weitere Zeilen wurden entfernt ...
[[Datei: Hardlink.png]]
=== Hardlinks ===
=== Hardlinks ===
Bei einem Hardlink handelt es sich eigentlich nur um einen weiteren Verzeichniseintrag für eine existierende Datei.Demzufolge belegt er auch keinen  eigenen Inode und fast gar keinen Speicherplatz im Dateisystem. Daraus ergeben sich völlig andere Eigenschaften im Vergleich zu einem symbolischen Link:
Bei einem Hardlink handelt es sich eigentlich nur um einen weiteren Verzeichniseintrag für eine existierende Datei. Demzufolge belegt er auch keinen  eigenen Inode und fast gar keinen Speicherplatz im Dateisystem. Daraus ergeben sich völlig andere Eigenschaften im Vergleich zu einem symbolischen Link
*Hardlinks können nicht auf Verzeichnisse angewendet werden, sondern nur auf Dateien.
* Hardlinks können nicht auf Verzeichnisse angewandt werden, sondern nur auf Dateien.
 
* Hardlinks können nicht partitionsübergreifend eingesetzt werden.
*Hardlinks können nicht partitionsübergreifend eingesetzt werden.
* Es  gibt  keine  verwaisten  bzw.&nbsp; gebrochenen  Hardlinks.  Eine  Datei  wird  gelöscht,wenn der letzte Hardlink zu dieser Datei gelöscht wird.
 
* Die Zieldatei und der Hardlink verwenden eine gemeinsame Zugriffssteuerungsliste (ACL).
*Es  gibt  keine  verwaisten  bzw. gebrochenen  Hardlinks.  Eine  Datei  wird  gelöscht,wenn der letzte Hardlink zu dieser Datei gelöscht wird.
* Ein Hardlink ist im Nachhinein nicht mehr von seiner Zieldatei zu unterscheiden.
 
*Die Zieldatei und der Hardlink verwenden eine gemeinsame Zugriffssteuerungsliste (ACL).
 
*Ein Hardlink ist im Nachhinein nicht mehr von seiner Zieldatei zu unterscheiden.


Wenn Sie das Kommando ln ohne Optionen verwenden, wird ein Hardlink erstellt. Die folgenden Kommandos demonstrieren die Eigenarten von Hardlinks. Zunächst werden zwei Hardlinks zu einer  bestehenden  Datei erstellt. Das Kommando ls-l zeigt das Ergebnis der Aktion:
Wenn Sie das Kommando ln ohne Optionen verwenden, wird ein Hardlink erstellt. Die folgenden Kommandos demonstrieren die Eigenarten von Hardlinks. Zunächst werden zwei Hardlinks zu einer  bestehenden  Datei erstellt. Das Kommando ls-l zeigt das Ergebnis der Aktion


  archangel:/testfiles # ln file1 hardlink1
  archangel:/testfiles # ln file1 hardlink1
Zeile 134: Zeile 120:
  -rw-r--r--  3 root root 22271 Jan  2 19:21 hardlink2
  -rw-r--r--  3 root root 22271 Jan  2 19:21 hardlink2


Die drei Dateien sind offensichtlich gleich groß und verfügen auch sonst über dieselben  Eigenschaften. Mit ls-li soll  festgestellt werden, welche  Inodes  die  Dateien jeweils belegen:
Die drei Dateien sind offensichtlich gleich groß und verfügen auch sonst über dieselben  Eigenschaften. Mit ls -li soll  festgestellt werden, welche  Inodes  die  Dateien jeweils belegen


  archangel:/testfiles # ls -li
  archangel:/testfiles # ls -li
Zeile 144: Zeile 130:
  1896921 -rw-r--r--  3 root root 22271 Jan  2 19:21 hardlink2
  1896921 -rw-r--r--  3 root root 22271 Jan  2 19:21 hardlink2


Alle drei Dateien verwenden ein und de nselben Inode. Wenn Sie das Kommando stat auf eine der drei Dateien anwenden, sehen Sie zwei interessante Details. Erstens werden die Hardlinks als reguläre Dateien erkannt, und zweitens erkennt das Programm drei Links. Es wird also auch die ursprüngliche Datei als Link dargestellt:
Alle drei Dateien verwenden ein und de nselben Inode. Wenn Sie das Kommando stat auf eine der drei Dateien anwenden, sehen Sie zwei interessante Details. Erstens werden die Hardlinks als reguläre Dateien erkannt, und zweitens erkennt das Programm drei Links. Es wird also auch die ursprüngliche Datei als Link dargestellt


  archangel:/testfiles # stat hardlink1
  archangel:/testfiles # stat hardlink1
Zeile 155: Zeile 141:
  Change: 2017-01-02 19:21:46.000000000 +0100
  Change: 2017-01-02 19:21:46.000000000 +0100


[[Category:Linux]]
[[Kategorie:Linux/LPIC/101]]
[[Category:Linux:LPIC:101]]

Aktuelle Version vom 29. September 2024, 08:01 Uhr

Wichtigste Wissensgebiete

  1. Links anlegen
  2. harte und/oder symbolische Links identifizieren
  3. Dateien kopieren vs. verlinken
  4. Links verwenden, um Systemadministrationsaufgaben zu unterstützen

Wichtiger Dateien, Verzeichnisse und Anwendungen

Allgemeines

  • Wenn es ermöglicht werden soll, auf eine Datei von verschiedenen Verzeichnissen aus zuzugreifen,
  • können Sie auf diese Datei einen Link legen, anstatt die Datei in die verschiedenen Verzeichnisse zu kopieren. Das hat im Wesentlichen zwei Vorteile: Einerseits sparen Links Platz auf dem Datenträger,
  • weil eine Datei nicht mehrfach vorhanden sein muss, wenn sie über mehr,als nur einen Pfad bereitgestellt werden soll.
  • Andererseits wird die Administration vereinfacht, weil man nicht mehrere Versionen einer Datei pflegen muss.

Softlinks

Softlinks werden auch als symbolische Links bezeichnet. Ein Softlink ist im Prinzip ein Zeiger, der auf eine Datei zeigt. Er belegt nur wenig Speicherplatz auf dem Datenträger, auf dem er angelegt wurde. Die Besonderheiten eines Softlinks sind

  • Er kann sowohl auf Dateien als auch auf Verzeichnisse verweisen.
  • Er kann auf Dateien und Verzeichnisse einer anderen oder der Partition angewandt werden, auf der er sich selbst befindet.
  • Er verwendet die Dateiberechtigungen der Zieldatei und ist deshalb immer mit Lese-, Schreib- und Ausführungsrechten versehen.
  • Ein Softlink bleibt bestehen, wenn die Zieldatei gelöscht wird. Man bezeichnet einen solchen verwaisten Link auch als gebrochenen Link.

Die folgenden kommentierten Kommandos demonstrieren das Verhalten von Softlinks. Das erste Kommando ln-s erzeugt einen Softlink mit der Bezeichnung softlink,der auf die existierende Datei file1 verweist. Mit dem zweiten Kommando wird das Ergebnis der Aktion überprüft

archangel:/testfiles # ln -s file1 softlink
archangel:/testfiles # ls -l
total 44
drwxr-xr-x   2 root root  4096 Jan  2 18:00 .
drwxr-xr-x  24 root root  4096 Jan  2 17:55 ..
-rw-r--r--   1 root root 35184 Jan  2 17:55 file1
lrwxrwxrwx   1 root root     5 Jan  2 18:00 softlink -> file1

Die erste Spalte der letzten Zeile des Kommandos ls-l zeigt an, dass es sich um einen Link handelt. Beachten Sie bitte auch, dass in der Zugriffssteuerungsliste alle Rechte gesetzt sind. Wenn Sie nun den Modus dieses Links verändern, ändert sich stattdes-sen der Modus der Zieldatei

archangel:/testfiles # chmod a+w softlink
archangel:/testfiles # ls -l
total 44
drwxr-xr-x   2 root root  4096 Jan  2 18:00 .
drwxr-xr-x  24 root root  4096 Jan  2 17:55 ..
-rw-rw-rw-   1 root root 35184 Jan  2 17:55 file1
lrwxrwxrwx   1 root root     5 Jan  2 18:00 softlink -> file1

Das erste Kommando fügt zu softlink Schreibrechte für alle hinzu. Diese Rechte werden aber stattdessen der Datei file1 hinzugefügt,wie Sie sehen.Es gibt mehrere Methoden, sich die Auswirkungen von Links anzusehen. Mit dem Kommando ls-li kann z. B.  nachgewiesen werden, dass die Zieldatei und der Softlink zwei verschiedene Inodes verwenden

archangel:/testfiles # ls -li
total 44
1896834 drwxr-xr-x  2 root root  4096 Jan 2 18:00 .
2 drwxr-xr-x 24 root root  4096 Jan 2 17:55 ..
1896921 -rw-rw-rw-  1 root root 35184 Jan 2 17:55 file1
1896920 lrwxrwxrwx  1 root root     5 Jan 2 18:00 softlink -> file1

Die Datei file1 verwendet den Inode 1896921, während der Softlink softlink den Inode 1896920 belegt. Mit dem Kommando stat kann Ähnliches nachgewiesen werden

archangel:/testfiles # stat softlink
File: `softlink' -> `file1'
Size: 5         Blocks: 0     IO Block: 4096   symbolic link
Device: 302h/770d       Inode: 1896920     Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (  0/  root)  Gid: (  0/  root)
Access: 2017-01-02 18:26:45.000000000 +0100
Modify: 2017-01-02 18:00:07.000000000 +0100
Change: 2017-01-02 18:00:07.000000000 +0100

In der zweiten Zeile der Kommandoausgabe wird angezeigt, dass es sich um einen symbolischen Link handelt. Die Zugriffsrechte sind auch noch einmal deutlich dargestellt. Wenden Sie dasselbe Kommando auf die Zieldatei des Links an, ergibt sich folgendes Bild

archangel:/testfiles # stat file1
File: `file1'
Size: 35184      Blocks: 72     IO Block: 4096   regular file
Device: 302h/770d       Inode: 1896921     Links: 1
Access: (0666/-rw-rw-rw-)  Uid: (  0/  root)  Gid: (  0/  root)
Access: 2017-01-02 17:55:38.000000000 +0100
Modify: 2017-01-02 17:55:38.000000000 +0100
Change: 2017-01-02 18:01:03.000000000 +0100

Die zweite Zeile besagt, dass es sich um eine gewöhnliche Datei handelt. Auch hier sieht man deutlich, dass die Zieldatei und der Softlink zwei verschiedene Inodes verwenden.

Mit den nächsten Kommandos wird demonstriert, was geschieht, wenn Sie die Zieldatei eines symbolischen Links löschen, den Link selbst aber nicht

archangel:/testfiles # rm file1

Die Zieldatei ist nun gelöscht

archangel:/testfiles # ls -l
total 8
drwxr-xr-x   2 root root 4096 Jan  2 18:40 .
drwxr-xr-x  24 root root 4096 Jan  2 17:55 ..
lrwxrwxrwx   1 root root    5 Jan  2 18:00 softlink -> file1

Der Softlink ist, wie Sie sehen, bestehen geblieben. Wenn Sie nun versuchen, über diesen Link auf die nicht mehr existieren de Datei zuzugreifen, erhalten Sie jedoch eine Fehlermeldung

archangel:/testfiles # cat softlink
cat: softlink: No such file or directory

Ein typisches Beispiel für die praktische Verwendung von Softlinks sind die Verlinkungen der init-Skripte, die beim Systemstart abgearbeitet werden. »Runlevel wechseln und das System anhalten oder neu starten«, behandelt. Sie sehen hier einen Teil der Links, die zum Runlevel 3 eines Systems gehören

archangel:/etc/rc.d/rc3.d # ls -l
total 8
drwxr-xr-x   2 root root 4096 Oct 19 21:53 ./
drwxr-xr-x  11 root root 4096 Dec 19 11:04 ../
lrwxrwxrwx   1 root root    7 Jul 20  2017 K03cron -> ../cron*
lrwxrwxrwx   1 root root    8 Jul 20  2017 K03smbfs -> ../smbfs*
lrwxrwxrwx   1 root root    6 Jul 20  2017 K05smb -> ../smb*
lrwxrwxrwx   1 root root    8 Jul 20  2017 K05squid -> ../squid*
... weitere Zeilen wurden entfernt ...

Hardlinks

Bei einem Hardlink handelt es sich eigentlich nur um einen weiteren Verzeichniseintrag für eine existierende Datei. Demzufolge belegt er auch keinen eigenen Inode und fast gar keinen Speicherplatz im Dateisystem. Daraus ergeben sich völlig andere Eigenschaften im Vergleich zu einem symbolischen Link

  • Hardlinks können nicht auf Verzeichnisse angewandt werden, sondern nur auf Dateien.
  • Hardlinks können nicht partitionsübergreifend eingesetzt werden.
  • Es gibt keine verwaisten bzw.  gebrochenen Hardlinks. Eine Datei wird gelöscht,wenn der letzte Hardlink zu dieser Datei gelöscht wird.
  • Die Zieldatei und der Hardlink verwenden eine gemeinsame Zugriffssteuerungsliste (ACL).
  • Ein Hardlink ist im Nachhinein nicht mehr von seiner Zieldatei zu unterscheiden.

Wenn Sie das Kommando ln ohne Optionen verwenden, wird ein Hardlink erstellt. Die folgenden Kommandos demonstrieren die Eigenarten von Hardlinks. Zunächst werden zwei Hardlinks zu einer bestehenden Datei erstellt. Das Kommando ls-l zeigt das Ergebnis der Aktion

archangel:/testfiles # ln file1 hardlink1
archangel:/testfiles # ln file1 hardlink2
archangel:/testfiles # ls -l
total 80
drwxr-xr-x   2 root root  4096 Jan  2 19:21 .
drwxr-xr-x  24 root root  4096 Jan  2 17:55 ..
-rw-r--r--   3 root root 22271 Jan  2 19:21 file1
-rw-r--r--   3 root root 22271 Jan  2 19:21 hardlink1
-rw-r--r--   3 root root 22271 Jan  2 19:21 hardlink2

Die drei Dateien sind offensichtlich gleich groß und verfügen auch sonst über dieselben Eigenschaften. Mit ls -li soll festgestellt werden, welche Inodes die Dateien jeweils belegen

archangel:/testfiles # ls -li
total 80
1896834 drwxr-xr-x   2 root root  4096 Jan  2 19:21 .
2 drwxr-xr-x  24 root root  4096 Jan  2 17:55 ..
1896921 -rw-r--r--   3 root root 22271 Jan  2 19:21 file1
1896921 -rw-r--r--   3 root root 22271 Jan  2 19:21 hardlink1
1896921 -rw-r--r--   3 root root 22271 Jan  2 19:21 hardlink2

Alle drei Dateien verwenden ein und de nselben Inode. Wenn Sie das Kommando stat auf eine der drei Dateien anwenden, sehen Sie zwei interessante Details. Erstens werden die Hardlinks als reguläre Dateien erkannt, und zweitens erkennt das Programm drei Links. Es wird also auch die ursprüngliche Datei als Link dargestellt

archangel:/testfiles # stat hardlink1
File: `hardlink1'
Size: 22271      Blocks: 48     IO Block: 4096   regular file
Device: 302h/770d       Inode: 1896921     Links: 3
Access: (0644/-rw-r--r--)  Uid: (  0/  root)  Gid: (  0/  root)
Access: 2017-01-02 19:21:30.000000000 +0100
Modify: 2017-01-02 19:21:30.000000000 +0100
Change: 2017-01-02 19:21:46.000000000 +0100