5.5. Symbolische Verweise und Einschränkungen ,,harter`` Verweise

Wir müssen uns nun einem weit verbreitetem Missverständnis, das sogar unter Unix-Benutzern herrscht, widmen. Es resultiert größtenteils aus der Annahme, dass Verweise, wie wir sie bislang kennen gelernt haben (fälschlicherweise ,,harte`` Verweise genannt), nur mit regulären Dateien verknüpft werden (wir haben gesehen, dass dies nicht der Fall ist – sogar symbolische Verweise werden ,,verknüpft``).

 

Zunächst müssen wir aber erklären, was symbolische Verweise sind.[1]

Symbolische Verweise sind Dateien eines bestimmten Typs, deren einziger Inhalt aus einer beliebigen Zeichenkette besteht, die auf eine eventuell existierende Datei verweist. Sollten Sie in einer Kommandozeile oder in einem Programm auf einen symbolischen Verweis zugreifen wollen, greifen Sie in Wirklichkeit auf die Datei zu, auf die verwiesen wird – sofern sie existiert. Folgendes Beispiel verdeutlicht dies:

$ echo Hallo >datei
$ ln -s datei verweis
$ ls -il
total 4
    169 -rw-rw-r--    1 franz   franz      6 Dez 10 21:30 datei
    416 lrwxrwxrwx    1 franz   franz      6 Dez 10 21:30 verweis -> datei
$ cat datei
Hallo
$ cat verweis
Hallo

Wie Sie sehen, steht als Dateityp für verweis ein ,,l``. Es handelt sich also um einen symbolischen Verweis. Die Zugriffsrechte einer solchen Datei sind relativ uninteressant, da sie immer die Form ,,rwxrwxrwx`` haben. Sie können immer sehen, dass es sich wirklich um eine andere Datei als datei handelt, da die Inode-Nummern unterschiedlich sind. Dennoch verweist es symbolisch auf die reguläre Datei, bei dem Befehl cat verweis wird also in Wirklichkeit der Inhalt der Datei datei ausgegeben. Um zu demonstrieren, dass ein symbolischer Verweis eine Zeichenkette enthält, kann man Folgendes tun:

$ ln -s "Ich bin keine existierende Datei" weiterer_verweis
$ ls -il weiterer_verweis
    418 lrwxrwxrwx    1 franz  franz      20 Dez 10 21:43 weiterer_verweis 
-> Ich bin keine existierende Datei
$ cat weiterer_verweis
cat: weiterer_verweis: No such file or directory
$

Symbolische Verweise existieren jedoch, da sie einige Einschränkungen aus dem Weg räumen, die normale, ,,harte`` Verweise aufweisen:

Aus diesen Gründen sind symbolische Verweise also in vieler Hinsicht sehr nützlich, und man neigt dazu sie zu benutzen, auch wenn ein normaler Verweis ausreichen würde. Ein Vorteil der normalen Verweise ist, das Sie die Datei nicht verlieren, sollten Sie einmal das ,,Original`` löschen :-).

Sollten Sie gut aufgepasst haben, können Sie jetzt zum Abschluss sagen, wofür die Größe eines symbolischen Verweises steht. Genau, es ist die Länge der Zeichenkette.

Fußnoten

[1]

Im Englischen werden die symbolischen Verweise auch ,,soft links``, genannt, während die normalen (fälschlicherweise) ,,hard links`` genannt werden, was zu dem deutschen (immer noch falschen) Begriff der ,,harten`` Verweise geführt hat.


Tux on Star from MandrakeSoft Linux ist ein eingetragenes Warenzeichen von Linus Torvalds. Alle anderen Warenzeichen und Copyrights sind das Eigentum ihrer Inhaber.
Sofern nichts anderes Angaben ist, unterliegen die Inhalte der Seiten sowie alle Bilder dem Copyright von MandrakeSoft S.A. und MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/