Verzeichnisse

Heute geht es um Verzeichnisse.

  • Was sind relative und absolute Pfade und
  • Was ist ein Dateisystembaum?
  • Wie kann man im Dateisystem herumlaufen?

Das Unix Betriebsystem (von denen Linux eine Variante ist) besitzt genau einen, einheitlichen Dateisystembaum. Dies ist zuerst sehr unterschiedlich zu z.B. Windowstm, wo es "Laufwerke" gibt und innerhalb des Laufwerks spannt sich ein neuer Dateisystembaum auf. Das gibt es unter Unix nicht. Die Philosophie dahinter ist: Der User des Systems muss nicht wissen auf welchem Laufwerk sich etwas befindet, er sucht die Datei über einen Pfad auf. Wo sich die Laufwerke verbergen wird in einem anderen Artikel behandelt.

Pfade

Ein Pfad ist eine Reihe von Verzeichnissen, die eindeutig die Lage des gewünschten Ziels beschreibt.Als Trenner zwischen den Verzeichnisnamen wird der Schrägstrich "/" verwendet.

Es gibt zwei unterschiedliche Pfade:

  1. Absolute Pfade
  2. Relative Pfade

Absolute Pfade beginnen von der Wurzel und listen alle Verzeichnisse auf dem Weg auf bis zum Zielverzeichnis.

Beispiel:

/dies/ist/ein/langer/und/absoluter/Verzeichnis/Pfad

 Relative Pfade beginnen mit einem oder zwei Punkten und beschreiben den Weg zu einem Ziel vom momentanen Aufenthaltsort.

Beispiel:

../../dies/ist/ein/relativer/Pfad
Jedes Programm, also auch der Kommandozeileninterpreter (Shell) verfügt über ein momentanes aufenthalts Verzeichnis. Mit dem Kommando pwd kann man den momentanen Ort erfragen. Er erscheint gewöhnlich auch in der Ausgabe des Kommandprompts. Das relative Beispiel nimmt diesen Ort als Referenz, geht zwei Verzeichnisse nach oben und dann steigt es von dort in die Verzeichnisse dies/ist/ein/relativer/Pfad ab.

Das .. Verzeichnis und das . Verzeichnis

In jedem Verzeichnis legt das System zwei besondere Referenzen an, welche in den relativen Pfaden verwendet werden können.

  1. Das Verziechnis ..
  2. Das Verzeichnis .

Das Verzeichnis .. referenziert das darüberliegende Verzeichnis und ermöglicht so den Sprung oder die Referenz nach oben.

Das Verzeichnis . referenziert das aktuelle Verzeichnis. Das scheint auf den ersten Blick überflüssig zu sein, da wir uns bereits in diesem Verzeichnis befinden. Das ist jedoch ein Trugschluss. Ohne diese Referenz müsste man um einen relativen Pfad unterhalb des aktuellen Verzeichnises zu beschreiben, zuerst eine Ebene nach oben, dann das aktuelle Verzeichnis benennen um dann in die Struktur weiter unten zu referenzieren. Das können wir uns sparen indem wir einfach den Punkt benutzen.

Beispiel:

Gegeben sei eine Verzeichnisstruktur /dies/ist/ein/langer/datei/system/pfad. Wir befinden uns im Verzeichnis ein unterhalb des Verzeichnisses ist. Wir wollen auf das Verzeichnis datei verweisen. Wie ist die kürzeste relative Beschreibung?

Lösung: ./langer/datei

Wie müsste man es schreiben, wenn es keinen . gäbe?

Lösung: relativ ../ein/langer/datei - oder absolut /dies/ist/ein/langer/datei

Das Kommando cd - change directory

Mit dem cd Kommando kann man sein aktuelles Verzeichnis verschieben. Alle darauf folgenden Programme verwenden den neuen "Aufenthaltsort" als ihr Startverzeichnis.

Das Kommando cd unterstützt dabei sowohl absolute als auch relative Pfade.

Wird cd ohne Optionen aufgerufen, so wechselt das Kommando in das Startverzeichnis des Nutzers zurück.

Das Kommando ls - list

Mit dem Kommando ls kann man sich den Inhalt eines Verzeichnisses - Unterverzeichnisse und Dateien - anzeigen lassen. Ohne Optionen gibt ls den Inhalt des aktuellen Verzeichnisses aus. Gibt man ls einen Verzeichnispfad als Option so wird der inhalt des gegebenen verzeichnisses angezeigt. Weitere Optionen des ls Kommandos werden in einem eigenen Beitrag behandelt.

Zusammenfassung

  • Es gibt nur einen Dateisystembaum
  • Verzeichnisse werden von der Wurzel startend absteigend benamt. Dies nennt man einen absoluten Pfad
  • Relative Pfade beziehen den momentanen Aufenthaltsort im Dateisystembaum ein.
  • Es gibt die speziellen Verzeichnisse . und .. welche als Referenz für das momentane Verzeichnis und das darübergelegene Verzeichnis dienen
  • Mit den Kommandos pwd, cd, ls kann man im Verzeichnisbaum herumlaufen und sich die Inhalte der Verzeichnisse ansehen.
  • Dabei kann man cd und ls sowohl absolute als auch relative Pfade als Optionen verwenden