Table of Contents
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
.
Das Wiki zu den Fächern BSA und AIS. Home