1 Absolute_und_relative_Pfadnamen
kraeml edited this page 2023-09-22 15:28:28 +02:00
This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Absolute und relative Pfadnamen

absolute Pfadnamen

Jede Datei in einem Linux-System wird durch einen Namen beschrieben, der sich ergibt, indem man ausgehend vom Wurzelverzeichnis jedes Verzeichnis nennt bis zu dem, in dem die Datei steht, gefolgt vom Namen der Datei selbst. Beispielsweise benennt /home/hugo/brief.txt die Datei brief.txt, die im Verzeichnis hugo steht, das wiederum im Verzeichnis home zu finden ist. Das Verzeichnis home steht direkt im Wurzelverzeichnis. Solche Namen, die vom Wurzelverzeichnis ausgehen, heißen absolute Pfadnamen« (engl. absolute path names) wir sprechen von Pfadnamen, weil der Name einen Pfad durch den Verzeichnisbaum beschreibt, in dem die Namen von Verzeichnissen und Dateien vorkommen können (es handelt sich also um einen Sammelbegriff).

aktuelles Verzeichnis und relative Pfadnamen

Jeder Prozess in einem Linux-System hat ein aktuelles Verzeichnis (engl. current directory, auch working directory, »Arbeitsverzeichnis«). Dateinamen werden in diesem Verzeichnis gesucht; brief.txt ist also eine bequeme Abkürzung für »die Datei brief.txt im aktuellen Verzeichnis«, und susi/brief.txt « steht für »die Datei brief.txt im Verzeichnis susi , das im aktuellen Verzeichnis steht«. Solche Namen, die vom aktuellen Verzeichnis ausgehen, nennen wir »relative Pfadnamen« (engl. relative path names).

Hinweis

Sie können ganz einfach absolute von relativen Pfadnamen unterscheiden:

Ein Pfadname, der mit » / « anfängt, ist absolut; alle anderen Pfadnamen sind relativ.

Hinweis

Das aktuelle Verzeichnis vererbt sich vom Elterprozess auf den Kindprozess. Wenn Sie also aus einer Shell heraus eine neue Shell (oder ein anderes Programm) starten, dann hat diese neue Shell dasselbe aktuelle Verzeichnis wie die Shell, aus der Sie sie gestartet haben. Sie können innerhalb der neuen Shell mit cd in ein anderes Verzeichnis wechseln, aber das aktuelle Verzeichnis der alten Shell ändert sich dadurch nicht wenn Sie die neue Shell verlassen, dann sind Sie wieder im (unveränderten) aktuellen Verzeichnis der alten Shell.

Abkürzungen

In relativen (oder auch absoluten) Pfadnamen gibt es zwei bequeme Abkürzungen: Der Name .. steht für das dem jeweiligen Verzeichnis im Verzeichnisbaum übergeordnete Verzeichnis im Falle von /home/hugo also beispielsweise /home. Das erlaubt Ihnen oftmals, bequemer als über absolute Pfadnamen auf Dateien Bezug zu nehmen, die aus der Sicht des aktuellen Verzeichnisses in einem Seitenast des Verzeichnisbaums zu finden sind. Nehmen wir an, /home/hugo hätte die Unterverzeichnisse briefe und romane . Mit briefe als aktuellem Verzeichnis könnten Sie sich über den relativen Pfadnamen ../romane/werther.txt auf die Datei werther.txt im Verzeichnis romane beziehen, ohne den umständlichen absoluten Namen /home/hugo/romane/werther.txt angeben zu müssen.

Die zweite Abkürzung ergibt keinen ganz so offensichtlichen Sinn: Der Name . in einem Verzeichnis steht immer für das Verzeichnis selbst. Es leuchtet nicht unmittelbar ein, wofür man eine Methode braucht, auf ein Verzeichnis zu verweisen, in dem man sich bereits befindet, aber es gibt Situationen, wo das sehr nützlich ist. Zum Beispiel wissen Sie vielleicht schon (oder können in Kapitel 8 nachschauen), dass die Shell die Programmdateien für externe Kommandos in den Verzeichnissen sucht, die in der Umgebungsvariablen PATH aufgelistet sind. Wenn Sie als Softwareentwickler ein Programm, nennen wir es mal prog, aufrufen wollen, das (a) in einer Datei im aktuellen Verzeichnis steht und (b) dieses aktuelle Verzeichnis nicht in PATH zu finden ist (aus Sicherheitsgründen immer eine gute Idee), dann können Sie mit

./prog

die Shell trotzdem dazu bringen, Ihre Datei als Programm zu starten, ohne dass Sie einen absoluten Pfadnamen angeben müssen.

Hinweise

Als Linux-Benutzer haben Sie ein Heimatverzeichnis, in dem Sie direkt nach dem Anmelden am System landen. Welches das ist, bestimmt der Systemadministrator beim Anlegen Ihres Benutzerkontos, aber es heißt normalerweise so wie Ihr Benutzername und ist unterhalb von /home zu finden etwas wie /home/hugo für den Benutzer hugo.