Hardlink: Unterschied zwischen den Versionen
Erscheinungsbild
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