Zum Inhalt springen

Hardlink: Unterschied zwischen den Versionen

Aus Foxwiki
Die 5 zuletzt angesehenen Seiten:  Hardlink
Leere Seite erstellt
 
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
=== 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
<syntaxhighlight lang="bash" highlight="1-3" line>
ln file1 hardlink1
ln file1 hardlink2
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
</syntaxhighlight>
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
<syntaxhighlight lang="bash" highlight="1" line>
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
</syntaxhighlight>
Alle drei Dateien verwenden dieselben 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
<syntaxhighlight lang="bash" highlight="1" line>
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
</syntaxhighlight>

Version vom 3. Januar 2025, 12:36 Uhr

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

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