Softlink: Unterschied zwischen den Versionen

Aus Foxwiki
Subpages:
Die Seite wurde neu angelegt: „ === Softlink === 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 * E…“
 
Keine Bearbeitungszusammenfassung
 
(29 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Softlink''' - Zeiger auf einen anderen Punkt im Dateisystem (symbolic link)


=== Softlink ===
== Beschreibung ==
Softlinks werden auch als symbolische Links bezeichnet
Softlinks werden auch als symbolische Links bezeichnet
* Ein Softlink ist im Prinzip ein Zeiger, der auf eine Datei zeigt
* 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
* Er belegt nur wenig Speicherplatz auf dem Datenträger, auf dem er angelegt wurde
Zeile 12: Zeile 12:
* Man bezeichnet einen solchen verwaisten Link auch als gebrochenen Link
* Man bezeichnet einen solchen verwaisten Link auch als gebrochenen Link


== Anwendung ==
Die folgenden kommentierten Kommandos demonstrieren das Verhalten von Softlinks
Die folgenden kommentierten Kommandos demonstrieren das Verhalten von Softlinks
<syntaxhighlight lang="bash" highlight="1" line>
</syntaxhighlight>


* Das erste Kommando ln-s erzeugt einen Softlink mit der Bezeichnung
=== Softlink erstellen ===
 
Das erste Kommando ln-s erzeugt einen Softlink mit der Bezeichnung
softlink,der auf die existierende Datei file1 verweist
* softlink,der auf die existierende Datei file1 verweist
 
* Mit dem zweiten Kommando wird das Ergebnis der Aktion überprüft
* Mit dem zweiten Kommando wird das Ergebnis der Aktion überprüft


<syntaxhighlight lang="bash" highlight="1-2" line>
  sudo ln -s file1 softlink
  sudo ln -s file1 softlink
  sudo ls -l
  sudo ls -l
Zeile 27: Zeile 30:
  -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
</syntaxhighlight>
Die erste Spalte der letzten Zeile des Kommandos ls-l zeigt an, dass es sich um einen Link handelt
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


* 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
* Wenn Sie nun den Modus dieses Links verändern, ändert sich stattdes-sen der Modus der Zieldatei


<syntaxhighlight lang="bash" highlight="1-2" line>
  sudo chmod a+w softlink
  sudo chmod a+w softlink
  sudo ls -l
  sudo ls -l
Zeile 39: Zeile 45:
  -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
</syntaxhighlight>
Das erste Kommando fügt zu softlink Schreibrechte für alle hinzu
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


* 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
* Mit dem Kommando ls-li kann z.&nbsp;B.&nbsp; nachgewiesen werden, dass die Zieldatei und der Softlink zwei verschiedene Inodes verwenden


<syntaxhighlight lang="bash" highlight="1" line>
  sudo ls -li
  sudo ls -li
  total 44
  total 44
Zeile 50: Zeile 59:
  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
</syntaxhighlight>
Die Datei file1 verwendet den Inode 1896921, während der Softlink softlink den Inode 1896920 belegt
Die Datei file1 verwendet den Inode 1896921, während der Softlink softlink den Inode 1896920 belegt


* Mit dem Kommando stat kann Ähnliches nachgewiesen werden
Mit dem Kommando stat kann Ähnliches nachgewiesen werden


<syntaxhighlight lang="bash" highlight="1" line>
  sudo stat softlink
  sudo stat softlink
  File: `softlink' -> `file1'
  File: `softlink' -> `file1'
Zeile 62: Zeile 74:
  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
</syntaxhighlight>
In der zweiten Zeile der Kommandoausgabe wird angezeigt, dass es sich um einen symbolischen Link handelt
In der zweiten Zeile der Kommandoausgabe wird angezeigt, dass es sich um einen symbolischen Link handelt


Zeile 67: Zeile 81:
* Wenden Sie dasselbe Kommando auf die Zieldatei des Links an, ergibt sich folgendes Bild
* Wenden Sie dasselbe Kommando auf die Zieldatei des Links an, ergibt sich folgendes Bild


<syntaxhighlight lang="bash" highlight="1" line>
  sudo stat file1
  sudo stat file1
  File: `file1'
  File: `file1'
Zeile 75: Zeile 90:
  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
</syntaxhighlight>
Die zweite Zeile besagt, dass es sich um eine gewöhnliche Datei handelt
Die zweite Zeile besagt, dass es sich um eine gewöhnliche Datei handelt


Zeile 80: Zeile 97:


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
sudo rm file1
 
<syntaxhighlight lang="bash" highlight="1" line>
sudo rm file1
</syntaxhighlight>
 
Die Zieldatei ist nun gelöscht
Die Zieldatei ist nun gelöscht
<syntaxhighlight lang="bash" highlight="1" line>
  sudo ls -l
  sudo ls -l
  total 8
  total 8
Zeile 87: Zeile 109:
  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
</syntaxhighlight>
Der Softlink ist, wie Sie sehen, bestehen geblieben
Der Softlink ist, wie Sie sehen, bestehen geblieben
* Wenn Sie nun versuchen, über diesen Link auf die nicht mehr existieren
* 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
<syntaxhighlight lang="bash" highlight="1" line>
  sudo cat softlink
  sudo cat softlink
  cat: softlink: No such file or directory
  cat: softlink: No such file or directory
</syntaxhighlight>
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
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
* Sie sehen hier einen Teil der Links, die zum Runlevel 3 eines Systems gehören


<syntaxhighlight lang="bash" highlight="1" line>
  /etc/rc.d/rc3.d # ls -l
  /etc/rc.d/rc3.d # ls -l
  total 8
  total 8
Zeile 106: Zeile 133:
  lrwxrwxrwx 1 root root 6 Jul 20 2017 K05smb -> ../smb*
  lrwxrwxrwx 1 root root 6 Jul 20 2017 K05smb -> ../smb*
  lrwxrwxrwx 1 root root 8 Jul 20 2017 K05squid -> ../squid*
  lrwxrwxrwx 1 root root 8 Jul 20 2017 K05squid -> ../squid*
</syntaxhighlight>


* weitere Zeilen wurden entfernt
* weitere Zeilen wurden entfernt


[[Datei:Hardlink.png]]
[[Datei:Hardlink.png]]
== Problembehebung ==
'''[[Softlink/Problembehebung]]'''
<noinclude>
== Anhang ==
=== Siehe auch ===
{{Special:PrefixIndex/{{BASEPAGENAME}}}}
==== Dokumentation ====
===== Man-Page =====
===== Info-Pages =====
==== Links ====
===== Projekt =====
===== Weblinks =====
{{DEFAULTSORT:Softlink}}
{{DISPLAYTITLE:Softlink}}
[[Kategorie:Softlink]]
</noinclude>

Aktuelle Version vom 3. Januar 2025, 13:55 Uhr

Softlink - Zeiger auf einen anderen Punkt im Dateisystem (symbolic link)

Beschreibung

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

Anwendung

Die folgenden kommentierten Kommandos demonstrieren das Verhalten von Softlinks

Softlink erstellen

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
 sudo ln -s file1 softlink
 sudo 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

 sudo chmod a+w softlink
 sudo 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

 sudo 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

 sudo 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
 sudo 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

sudo rm file1

Die Zieldatei ist nun gelöscht

 sudo 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

 sudo 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
 /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

Problembehebung

Softlink/Problembehebung



Anhang

Siehe auch

Dokumentation

Man-Page
Info-Pages

Links

Projekt
Weblinks