8.3 Arbeiten mit Dateien und Verzeichnissen

Um eine bestimmte Datei bzw. ein bestimmtes Verzeichnis anzusprechen, müssen Sie den Pfad angeben, der zu dem betreffenden Verzeichnis bzw. der betreffenden Datei führt. Wie Sie vielleicht bereits von MS DOS oder Mac OS wissen, gibt es zwei Methoden, einen Pfad anzugeben:

Absoluter Pfad

Geben Sie den vollständigen Pfad vom root-Verzeichnis zur jeweiligen Datei bzw. zum jeweiligen Verzeichnis ein.

Relativer Pfad

Geben Sie einen Pfad zur jeweiligen Datei bzw. zum jeweiligen Verzeichnis mit dem aktuellen Verzeichnis als Ausgangspunkt ein. Das bedeutet, dass Sie die Ebenen angeben, um die Sie vom aktuellen Verzeichnis ausgehend in der Struktur des Dateisystems nach oben oder unten navigieren müssen, um das Zielverzeichnis bzw. die Zieldatei zu erreichen.

Pfade enthalten Dateinamen und/oder Verzeichnisse, die durch Schrägstriche getrennt sind. Absolute Pfade beginnen immer mit einem Schrägstrich. Relativen Pfaden ist kein Schrägstrich vorangestellt, aber sie können einen oder zwei Punkte aufweisen.

Bei der Eingabe von Kommandos können Sie ganz nach Belieben/Eingabeaufwand eine der beiden Methoden zur Pfadangabe verwenden, beide führen zum selben Ergebnis. Sie wechseln das Verzeichnis mit dem Befehl cd und der Pfadangabe zum gewünschten Verzeichnis.

HINWEIS: Leerzeichen in Datei- oder Verzeichnisnamen

Wenn ein Datei- oder Verzeichnisname ein Leerzeichen enthält, geben Sie entweder vor dem Leerzeichen ein Escape-Zeichen (umgekehrter Schrägstrich \\ ) ein oder schließen Sie den Dateinamen in einfache Anführungszeichen ein. Andernfalls interpretiert Bash einen Dateinamen wie Eigene Dokumente als den Namen von zwei Dateien oder Verzeichnissen, in diesem Fall Eigene und Dokumente .

Bei der Angabe von Pfaden können Ihnen die folgenden Abkürzungen viel Schreibarbeit ersparen:

Probieren Sie Ihr Wissen in den folgenden Beispielen aus. Sie behandeln grundlegende Aufgaben, die Sie mit Bash an Dateien oder Ordnern ausführen können.

8.3.1 Beispiele für das Arbeiten mit Dateien und Verzeichnissen

Angenommen, Sie möchten eine Datei aus Ihrem Home-Verzeichnis in ein Unterverzeichnis von /tmp kopieren:

  1. Erstellen Sie ausgehend von Ihrem Home-Verzeichnis ein Unterverzeichnis in /tmp:

    1. Geben Sie ein:

      mkdir  /tmp/test

      mkdir steht für make directory (Verzeichnis anlegen). Mit diesem Befehl erstellen Sie ein neues Verzeichnis mit dem Namen test im Verzeichnis /tmp. In diesem Fall verwenden Sie einen absoluten Pfad, um das Verzeichnis test zu erstellen.

    2. Geben Sie nun das Folgende ein, um zu überprüfen, was geschehen ist:

      ls -l /tmp

      Das neue Verzeichnis test sollte nun in der Inhaltsliste des Verzeichnisses /tmp angezeigt werden.

    3. Wechseln Sie in das neu erstellte Verzeichnis mit

      cd /tmp/test
  2. Erstellen Sie nun eine neue Datei in Ihrem Home-Verzeichnis und kopieren Sie sie in das Verzeichnis /tmp/test. Verwenden Sie für diese Aufgabe einen relativen Pfad.

    WICHTIG: Überschreiben von bestehenden Dateien

    Bevor Sie eine Datei kopieren, verschieben oder umbenennen, prüfen Sie, ob Ihr Zielverzeichnis bereits eine Datei mit demselben Namen enthält. Wenn ja, ändern Sie ggf. einen der Dateinamen oder verwenden Sie cp bzw. mv mit Optionen wie -i, die eine Bestätigung verlangen, bevor eine bestehende Datei überschrieben wird. Andernfalls überschreibt Bash eine bestehende Datei ohne Rückfrage.

    1. Geben Sie zum Auflisten des Inhalts Ihres Home-Verzeichnisses Folgendes ein:

      ls -l ~

      Es sollte standardmäßig ein Unterverzeichnis mit dem Namen Dokumente enthalten. Wenn nicht, erstellen Sie dieses Unterverzeichnis mit dem Befehl mkdir, den Sie bereits kennen:

      mkdir ~/Documents
    2. Geben Sie ein:

      touch ~/Documents/myfile.txt

      Mit diesem Befehl erstellen Sie eine neue, leere Datei mit dem Namen myfile.txt im Verzeichnis Dokumente.

      Gewöhnlich aktualisiert der Befehl touch das Änderungs- und Zugriffsdatum für eine bestehende Datei. Wenn Sie touch mit einem Dateinamen verwenden, der im Zielverzeichnis nicht existiert, wird eine entsprechende neue Datei angelegt.

    3. Geben Sie ein:

      ls -l ~/Documents

      Die neue Datei sollte in der Inhaltsliste angezeigt werden.

    4. Geben Sie ein:

      cp ~/Documents/myfile.txt .

      Vergessen Sie nicht den Punkt am Ende.

      Dieser Befehl weist Bash an, direkt in Ihr Home-Verzeichnis zu wechseln und myfile.txt aus dem Unterverzeichnis Dokumente in das aktuelle Verzeichnis /tmp/test zu kopieren, ohne den Namen der Datei zu ändern.

    5. Prüfen Sie das Ergebnis, indem Sie Folgendes eingeben:

      ls -l

      Die Datei myfile.txt sollte nun in der Inhaltsliste für /tmp/test angezeigt werden.

Angenommen, Sie möchten nun myfile.txt in tuxfile.txt umbenennen. Zum Schluss beschließen Sie, die umbenannte Datei und das Unterverzeichnis test zu entfernen.

  1. Geben Sie zum Umbenennen der Datei den folgenden Befehl ein:

    mv myfile.txt tuxfile.txt
  2. Geben Sie das Folgende ein, um zu überprüfen, was geschehen ist:

    ls -l

    Anstelle von myfile.txt sollte nun tuxfile.txt in der Inhaltsliste angezeigt werden.

    mv steht für move (verschieben) und wird mit zwei Optionen verwendet: Mit der ersten Option wird die Quelle des Vorgangs, mit der zweiten Option das Ziel angegeben. Sie können mv für Folgendes verwenden:

    • Umbenennen einer Datei oder eines Verzeichnisses,

    • Verschieben einer Datei oder eines Verzeichnisses an eine andere Position oder

    • Ausführen beider Aktionen in einem Schritt.

  3. Sie entscheiden, dass Sie die Datei nicht mehr brauchen, und löschen sie, indem Sie Folgendes eingeben:

    rm tuxfile.txt 

    Bash löscht die Datei ohne jegliche Rückfrage.

  4. Wechseln Sie mit cd .. um eine Ebene nach oben und prüfen Sie mit

    ls -l test

    ob das Verzeichnis test nun leer ist.

  5. Wenn ja, können Sie das Verzeichnis test entfernen, indem Sie folgendes eingeben:

    rmdir test