Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« Neuer Zeitstempel: touch Dateieigenschaften Besondere Dateien »

Unterabschnitte
  • Der harte Link
  • Der symbolische Link

Links: Zwei Namen, eine Datei

Eine Besonderheit im UNIX-Dateisystem ist die Möglichkeit, der eigentlichen Datei mehrere Namen zuzuordnen. Man spricht hier von Links (engl. Verbindungen). Links bieten die Möglichkeit, eine Datei unter verschiedenen Namen auftreten zu lassen oder dass eine Datei an einer ganz anderen Stelle liegen kann, als da, wo ihr Zugriff benötigt wird.

Der harte Link

Es können beliebig viele Links angelegt werden. Sie können (mit gewissen Einschränkungen) in verschiedenen Verzeichnissen liegen. Der Inhalt der Datei wird erst dann wirklich entfernt, wenn der letzte Link gelöscht wurde. Der Befehl, um einen solchen Link zu erzeugen, lautet:

ln Originaldatei NeuerName
ln Originaldatei AnderesVerzeichnis

Im ersten Fall wird ein neuer Name angegeben, im zweiten Fall wird der gleiche Name in einem anderen Verzeichnis eingetragen. Die Reihenfolge der Parameter entspricht denen von cp. Zuerst wird die bereits existierende Quelle genannt und dann das zu erzeugende Zielobjekt. Beispiel: Wenn eine Datei namens hugo existiert, bewirkt der Befehl

ln hugo erna

dass hinterher scheinbar zwei Dateien existieren: hugo und erna. Es ist aber keine Kopie entstanden, sondern beide Einträge zeigen auf die gleiche Datei. Sie können dies leicht überprüfen, indem Sie in der einen Datei eine Änderung durchführen und in der anderen nachschauen. Sie werden die Änderung auch in ihr vorfinden. Sie erkennen, dass für eine Datei ein oder mehrere Links existieren, wenn Sie sich den Dateieintrag mit ls -l anschauen. Im Normalfall finden Sie eine 1 zwischen den Dateirechten und dem Besitzer. Das ist die Anzahl der Links, die auf den Dateiinhalt zeigen. Das folgende Beispiel zeigt unsere Dateien hugo und erna. Als Beispiel für eine normale Datei ist auch emil aufgeführt.

gaston> ls -l hugo erna emil
-rw-r-r-    1 arnold   users          18 Jul 20 01:51 emil
-rw-r-r-    2 arnold   users          18 Jul 20 01:51 erna
-rw-r-r-    2 arnold   users          18 Jul 20 01:51 hugo
gaston>

Man kann an der 2 erkennen, dass auf diese Datei zwei Einträge zeigen. Es ist auch egal, welche Datei zuerst gelöscht wird. Der Dateiinhalt verschwindet erst, wenn der letzte Link gelöscht wird.

Mit dem Parameter -f kann ein bestehender gleicher Dateiname überschrieben werden. Beispiel:

gaston> ln -f hugo emil
gaston> ls -l hugo erna emil
-rw-r-r-    3 arnold   users          18 Jul 20 01:51 emil
-rw-r-r-    3 arnold   users          18 Jul 20 01:51 erna
-rw-r-r-    3 arnold   users          18 Jul 20 01:51 hugo
gaston>

Der Link funktioniert in dieser Form nicht nur im gleichen Verzeichnis. Die Dateien müssen sich lediglich auf demselben Dateisystem befinden. Das liegt daran, dass die Datei tatsächlich nur einmal da ist. Lediglich der Verzeichniseintrag wird dupliziert. Da aber ein Verzeichniseintrag nur auf eine Datei des gleichen Dateisystems zeigen kann, ist ein plattenübergreifender Link so nicht möglich.

Der Link offeriert auch die Möglichkeit, dass ein und dasselbe Programm unterschiedliche Aktionen durchführt, je nachdem wie es heißt. Dieser Effekt wird beispielsweise bei compress und uncompress benutzt (siehe S. compress). Beide Namen zeigen auf die gleiche Datei. Da ein UNIX-Programm beim Aufruf außer den Parametern auch den Namen erfährt, unter dem es aufgerufen wurde (siehe S. main), kann compress feststellen, ob es unter dem Namen uncompress aufgerufen wurde, und setzt dann einfach selbst die Option -d.

Ferner ist es möglich, einen Datenbestand von mehreren Benutzern aktuell halten zu lassen, indem jeder Anwender einen Link auf die gleiche Datei hält. Beispielsweise können die .rhosts-Dateien, die den Zugriff von fremden Rechnern erlauben (siehe S. rhosts), auf diese Weise durch eine einzige Datei realisiert werden.

Der symbolische Link

Neben dem harten Link gibt es noch den symbolischen Link. Dieser Link kann auch über Dateisystemgrenzen hinweg greifen. Er ist auch nicht auf Dateien beschränkt: Er kann auch auf ein Verzeichnis zeigen. Allerdings hat er auch einen Haken: UNIX prüft nicht, ob die Datei, auf die der Link zeigt, auch wirklich existiert. UNIX achtet auch nicht darauf, ob jemand eine Datei oder ein Verzeichnis entfernt, auf die bzw. das ein symbolischer Link zeigt.

ln -s /etc/printcap myPrintCap

Der symbolische Link myPrintCap im aktuellen Verzeichnis zeigt auf die Datei /etc/printcap. Man kann leicht erkennen, was hinter dem symbolischen Link steckt, wenn man ls -l eingibt. Hier zeigt der Link X11 auf X11R6.

gaston> ls -l X11
lrwxrwxrwx    1 root     root        5 Mär 17  2001 X11 -> X11R6
gaston>

Den symbolischen Link kann man vereinfacht als eine Datei ansehen, die den Ort einer anderen Datei beinhaltet. Damit wird klar, dass der Link auf jede Stelle des UNIX-Verzeichnisbaums zeigen kann, ganz gleich auf welchem Medium es sich befindet. Es ist aber auch einleuchtend, dass die Originaldatei nichts vom Link »weiß« und so entfernt werden kann, obwohl noch ein Link existiert.

Der symbolische Link wird vor allem an zwei Stellen eingesetzt. Zum einen ist er hilfreich, wenn eine Platte vollzulaufen droht. Man kann die Dateien eines gesamten Verzeichnisses oder auch einzelne Dateien auf ein freies Laufwerk auslagern und einen symbolischen Link auf diese Stelle an der Originalposition unterbringen. Das Verschwinden der Datei bleibt für (fast) alle Programme unsichtbar. Der symbolische Link wird auch gern eingesetzt, wenn man die Version einer Software dokumentieren will. Beispielsweise wird das Paket wollmilchsau zurzeit in der deutschen Version 1.4 ausgeliefert. Dann installiert man es im Verzeichnis /opt/wollmilchsau.v.1.4.german. Um allerdings auf die Software zuzugreifen erstellt man einen symbolischen Link:

ln -s /opt/wollmilchsau.v.1.4.german /opt/wollmilchsau

Man kann später erkennen, dass die deutsche Version 1.4 installiert wurde. Man kann sogar die Version 1.5 installieren, ohne die Version 1.4 endgültig löschen zu müssen.

Symbolische Links speichern quasi die textuelle Beschreibung der Quelle. Anders ausgedrückt, merken sie sich den Pfadnamen, so wie er beim Anlegen des Links angegeben wurde. Es wird beim Anlegen nicht überprüft, ob der Link wirklich funktioniert. Entsprechend verschwindet der Link auch nicht, wenn das Ziel verschwindet, auf das er weist. Es ergeben sich darüber hinaus Stolperfallen, wenn nicht ein absoluter, sondern ein relativer Pfad als Ziel eines symbolischen Links angegeben wird. Im folgenden Beispiel liegt der zu erzeugende Link in einem Unterverzeichnis, in diesem Fall in savedir/my20020105. Da aber das Quellverzeichnis relativ zur aktuellen Position steht, wird auch der relative Pfad abgelegt. Aus Sicht des symbolischen Links liegt aber das Verzeichnis my nicht in ../my, sondern in ../../my. Es gibt keine Fehlermeldung beim Erzeugen des Links, aber die erste Benutzung wird scheitern.

ln -s  ../my  savedir/my20020105



« Neuer Zeitstempel: touch | Dateieigenschaften | Besondere Dateien »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de