Zum Inhalt springen

LPIC101/104.6 - Harte und symbolische Links

Aus Foxwiki

LPIC101/104.6 Harte und symbolische Links - erkennen, anlegen, ändern

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

Softlink

LPIC101/104.6 Harte und symbolische Links/Softlink

Hardlink

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
sudo ln file1 hardlink1
sudo ln file1 hardlink2
sudo 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
sudo 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
sudo 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