09.04.2014 Aufrufe

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

Linux Essentials//Die Einsteiger-Zertifizierung des LPI - Linup Front ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

92 6 Dateien: Aufzucht und Pflege<br />

Inode-Nummern<br />

dieselbe Datei handelt, ist nur mit Hilfe von »ls -i« eindeutig zu entscheiden.<br />

In diesem Fall muss die in der ersten Spalte angezeigte Dateinummer für beide<br />

Dateien identisch sein. Dateinummern, auch Inode-Nummern genannt, identifizieren<br />

Dateien eindeutig auf ihrem Dateisystem:<br />

$ ls -i<br />

876543 liste 876543 liste2<br />

B<br />

»Inode« ist kurz für indirection node, also etwa »Indirektionsknoten« oder<br />

»Weiterleitungsknoten«. In den Ino<strong>des</strong> sind alle Informationen gespeichert,<br />

die das System über eine Datei hat, bis auf den Namen. Jede Datei hat genau<br />

ein Inode.<br />

Wenn Sie den Inhalt einer der beiden Dateien verändern, ändert sich der Inhalt der<br />

anderen ebenfalls, da in Wirklichkeit ja nur eine einzige Datei mit der eindeutigen<br />

Nummer 876543 existiert. Wir haben der Datei mit der Nummer 876543 lediglich<br />

einen weiteren Namen gegeben.<br />

B<br />

Verzeichnisse sind nichts anderes als Tabellen, in denen Dateinamen Inode-<br />

Nummern zugeordnet werden. Offensichtlich kann es in einer Tabelle mehrere<br />

Einträge mit verschiedenen Namen und derselben Inode-Nummer geben.<br />

Ein Verzeichniseintrag mit einem Namen und einer Inode-Nummer<br />

heißt »Link«.<br />

Sie sollten sich klar machen, dass es bei einer Datei mit zwei Links nicht möglich<br />

ist, festzustellen, welcher Name »das Original« ist, also der erste Parameter im<br />

ln-Kommando. Beide Namen sind aus der Sicht <strong>des</strong> Systems absolut gleichwertig<br />

und ununterscheidbar.<br />

A<br />

Links auf Verzeichnisse sind unter <strong>Linux</strong> übrigens nicht erlaubt. Ausgenommen<br />

davon sind ».« und »..«, die vom System für je<strong>des</strong> Verzeichnis verwaltet<br />

werden. Da auch Verzeichnisse Dateien sind und demnach Inode-<br />

Nummern haben, können Sie so verfolgen, wie das Dateisystem intern zusammenhängt.<br />

(Siehe hierzu auch Übung 6.20)<br />

Wenn Sie eine der Dateien mit rm »löschen«, reduziert das zunächst nur die Anzahl<br />

der Namen für Datei Nummer 876543 (der Referenzzähler wird entsprechend<br />

angepasst). Erst wenn der Referenzzähler durch das Entfernen eines Namens den<br />

Wert 0 annimmt, wird die Datei tatsächlich gelöscht.<br />

$ rm liste<br />

$ ls -li<br />

876543 -rw-r--r-- 1 hugo users 2500 Oct 4 11:11 liste2<br />

B<br />

B<br />

Da Inode-Nummern nur auf demselben physikalischen Dateisystem (Partition,<br />

USB-Stick, …) eindeutig sind, sind solche Verknüpfungen nur in demselben<br />

Dateisystem möglich, wo auch die Datei liegt.<br />

Ganz stimmt es nicht mit dem Löschen der Dateidaten: Wenn der letzte<br />

Dateiname entfernt wird, ist die Datei nicht mehr zugänglich, aber wenn<br />

ein Prozess noch mit ihr arbeitet, darf er sie weiterbenutzen, bis er sie explizit<br />

schließt oder sich beendet. In Unix-Programmen ist das ein gängiges<br />

Idiom für den Umgang mit temporären Dateien, die beim Programmende<br />

verschwinden sollen: Sie erzeugen sie mit Schreib- und Lesezugriff und »löschen«<br />

sie dann gleich wieder, ohne sie jedoch gleich zu schließen. Anschließend<br />

können Sie Daten hinein schreiben und später an den Dateianfang zurückspringen,<br />

um sie wieder zu lesen.<br />

Copyright © 2012 <strong>Linup</strong> <strong>Front</strong> GmbH

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!