Grundlegende Dateioperationen

LinuxBeginner
Jetzt üben

Einführung

Willkommen im Lab „Grundlegende Dateioperationen unter Linux“! Unter Linux wird fast alles als Datei behandelt. Deshalb sind Dateioperationen ein grundlegender Bestandteil der Systemnutzung. In diesem Lab lernen Sie die wichtigsten Befehle zum Verwalten von Dateien und Verzeichnissen kennen. So können Sie sich sicherer in Ihrem Linux-System bewegen und dessen Inhalte organisieren.

Ihre Arbeitsumgebung verstehen

Unter Linux hat jeder Benutzer normalerweise ein „Home-Verzeichnis“, das durch ~ dargestellt wird. In dieser Lab-Umgebung starten Sie jedoch im Verzeichnis /home/labex/project. Dies ist unser Standard-Arbeitsverzeichnis.

Öffnen Sie zunächst ein Terminal auf dem Desktop ODER wechseln Sie in der Lab-Umgebung zum Terminal-Tab.

Screenshot der Terminaloberfläche

Ermitteln Sie zuerst Ihren aktuellen Speicherort:

pwd

pwd steht für „print working directory“ und zeigt Ihr aktuelles Verzeichnis im Dateisystem an. Dieser Befehl hilft Ihnen, sich in der Linux-Dateistruktur zu orientieren. Als Ausgabe sollte /home/labex/project erscheinen.

Sehen Sie sich nun die Beziehung zwischen dem aktuellen Verzeichnis und dem Home-Verzeichnis an:

echo ~

Hinweis: Wenn Sie das Symbol ~ im Desktop-Terminal aufgrund eines abweichenden Tastaturlayouts in bestimmten Ländern nicht eingeben können, wechseln Sie zum eigenständigen Terminal-Tab oben links in der VM-Oberfläche.

Dieser Befehl zeigt den Pfad zu Ihrem Home-Verzeichnis an. Er sollte /home/labex lauten.

Um den Inhalt Ihres aktuellen Verzeichnisses anzuzeigen, verwenden Sie:

ls

Damit werden die Dateien und Verzeichnisse in Ihrem aktuellen Arbeitsverzeichnis (/home/labex/project) aufgelistet.

Prüfen Sie außerdem den Inhalt Ihres Home-Verzeichnisses:

ls ~

Dieser Befehl listet den Inhalt Ihres Home-Verzeichnisses auf. Dieser kann sich vom Inhalt Ihres aktuellen Arbeitsverzeichnisses unterscheiden.

Für die Navigation im Linux-Dateisystem ist es wichtig, den Unterschied zwischen dem aktuellen Arbeitsverzeichnis und dem Home-Verzeichnis zu verstehen.

Im Dateisystem navigieren

Linux verwendet ein „hierarchisches Dateisystem“. Stellen Sie es sich wie einen großen Baum mit Ästen vor. Der Stamm heißt „Root-Verzeichnis“ und wird durch einen einzelnen Schrägstrich / dargestellt. Alle anderen Verzeichnisse und Dateien gehen von diesem Root-Verzeichnis aus.

Sehen Sie sich an, wie Sie sich in dieser baumartigen Struktur bewegen:

  1. Prüfen Sie Ihren aktuellen Speicherort:
pwd

Die Ausgabe sollte /home/labex/project lauten. Falls dies nicht der Fall ist, befinden Sie sich möglicherweise in einem anderen Verzeichnis. Mit cd /home/labex/project kehren Sie zum Ausgangsverzeichnis zurück.

  1. Zeigen Sie den Inhalt des aktuellen Verzeichnisses an:
ls

Dieser Befehl listet alle Dateien und Verzeichnisse an Ihrem aktuellen Speicherort auf. /home/labex/project ist leer, daher wird nichts angezeigt.

  1. Wechseln Sie eine Ebene nach oben in das übergeordnete Verzeichnis:
cd ..

.. steht für „das übergeordnete Verzeichnis“. Führen Sie anschließend erneut pwd aus. Sie sollten sich jetzt in /home/labex befinden.

  1. Kehren Sie in Ihr Projektverzeichnis zurück:
cd project

Damit wechseln Sie zurück nach /home/labex/project.

  1. Wechseln Sie in Ihr Home-Verzeichnis:
cd ~

~ ist eine Abkürzung für Ihr Home-Verzeichnis. Führen Sie pwd aus, um zu bestätigen, dass Sie sich in /home/labex befinden.

  1. Kehren Sie mithilfe eines absoluten Pfads in das Projektverzeichnis zurück:
cd /home/labex/project

Dies wird als „absoluter Pfad“ bezeichnet, weil der Pfad am Root-Verzeichnis (/) beginnt und den vollständigen Speicherort angibt.

Dateien erstellen und Verzeichnisinhalte auflisten

Nachdem Sie nun wissen, wie Sie navigieren, erstellen Sie einige Dateien und sehen sich an, wie Sie Verzeichnisinhalte auflisten.

Stellen Sie zunächst sicher, dass Sie sich im Verzeichnis /home/labex/project befinden:

cd /home/labex/project
  1. Erstellen Sie einige Dateien:
touch file1.txt

Mit dem Befehl touch erstellen Sie eine leere Datei. Wenn die Datei bereits vorhanden ist, aktualisiert touch den Zeitstempel, ohne den Inhalt zu verändern. So lassen sich einfach neue, leere Dateien erstellen.

echo "Hello, Linux" > file2.txt

Dieser Befehl führt zwei Aktionen aus:

  • echo gibt Text aus.
  • Das Symbol > leitet die Ausgabe von echo in eine Datei mit dem Namen file2.txt um. Falls die Datei noch nicht vorhanden ist, wird sie erstellt. Falls sie bereits existiert, wird ihr Inhalt ersetzt.
echo "Hidden file" > .hiddenfile

Damit erstellen Sie eine versteckte Datei. Unter Linux gilt jeder Datei- oder Verzeichnisname, der mit einem Punkt (.) beginnt, als versteckt.

  1. Erstellen Sie nun ein Verzeichnis:
mkdir testdir

Der Befehl mkdir (kurz für „make directory“) erstellt ein neues Verzeichnis mit dem Namen testdir.

  1. Einfache Auflistung:
ls

Ausgabe der Verzeichnisinhalte

Damit wird der Inhalt Ihres aktuellen Verzeichnisses angezeigt. Sie sollten file1.txt, file2.txt und testdir sehen.

  1. Detaillierte Auflistung:
ls -l

Die Option -l (ein kleingeschriebenes L, nicht die Zahl 1) gibt eine „lange“ Auflistung aus. Sie sehen zusätzliche Informationen wie Dateiberechtigungen, Besitzer, Größe und Änderungsdatum.

  1. Versteckte Dateien anzeigen:
ls -a

Damit werden alle Dateien angezeigt, einschließlich der erstellten versteckten Datei .hiddenfile.

  1. Optionen kombinieren:
ls -la

Dieser Befehl kombiniert das lange Format (-l) mit der Anzeige aller Dateien (-a).

  1. Inhalt eines bestimmten Verzeichnisses auflisten:
ls -l testdir

Damit listen Sie den Inhalt des Verzeichnisses testdir auf. Zu diesem Zeitpunkt sollte es leer sein.

Die Auflistungsbefehle in diesem Schritt dienen zum praktischen Üben und zur visuellen Kontrolle. Ihr Fortschritt wird überprüft, indem kontrolliert wird, ob die erforderlichen Dateien und das Verzeichnis korrekt erstellt wurden.

Dateien und Verzeichnisse kopieren

Nachdem Sie nun einige Dateien zur Verfügung haben, lernen Sie, wie Sie diese kopieren:

  1. Eine Datei kopieren:
cp file1.txt file1_copy.txt

Damit wird im aktuellen Verzeichnis eine Kopie von file1.txt mit dem Namen file1_copy.txt erstellt.

Überprüfen Sie die Kopie:

ls
  1. Eine Datei in ein anderes Verzeichnis kopieren:
cp file2.txt testdir/

Damit wird file2.txt in das Verzeichnis testdir kopiert.

  1. Ein Verzeichnis kopieren:
cp -r testdir testdir_copy

Die Option -r steht für „rekursiv“. Sie ist beim Kopieren von Verzeichnissen erforderlich, damit auch alle enthaltenen Inhalte kopiert werden.

  1. Überprüfen Sie die Kopien:
ls
ls testdir
ls testdir_copy

Terminal mit den kopierten Dateien

Dateien und Verzeichnisse verschieben und umbenennen

Der Befehl mv wird unter Linux sowohl zum Verschieben als auch zum Umbenennen verwendet:

  1. Eine Datei umbenennen:
mv file1.txt newname.txt

Damit wird file1.txt in newname.txt umbenannt.

  1. Eine Datei in ein Verzeichnis verschieben:
mv newname.txt testdir/

Damit wird newname.txt in das Verzeichnis testdir verschoben.

  1. Ein Verzeichnis umbenennen:
mv testdir_copy new_testdir

Damit wird testdir_copy in new_testdir umbenannt.

  1. In einem Befehl verschieben und umbenennen:
mv testdir/newname.txt ./original_file1.txt

Damit wird newname.txt aus testdir in das aktuelle Verzeichnis verschoben und dort in original_file1.txt umbenannt.

  1. Überprüfen Sie die Änderungen:
ls
ls testdir

Anzeige der Ergebnisse der Befehlsausführung

Dateien und Verzeichnisse löschen

Das Löschen von Dateien und Verzeichnissen ist ein mächtiger Vorgang. Anders als grafische Benutzeroberflächen bietet die Befehlszeile häufig keinen „Papierkorb“. Mit rm gelöschte Dateien sind normalerweise dauerhaft entfernt. Prüfen Sie Ihre Befehle daher immer sorgfältig, bevor Sie sie ausführen!

Räumen Sie nun die erstellten Dateien und Verzeichnisse auf. Stellen Sie sicher, dass Sie sich im Verzeichnis /home/labex/project befinden.

pwd
ls -a

Sie sollten Dateien wie original_file1.txt, .hiddenfile und file2.txt sowie Verzeichnisse wie testdir und new_testdir sehen.

.
..
.hiddenfile
file1_copy.txt
file2.txt
new_testdir
original_file1.txt
testdir
  1. Eine einzelne Datei löschen:

    rm original_file1.txt
    

    Der Befehl rm (kurz für „remove“) löscht Dateien. Prüfen Sie das Ergebnis:

    ls
    

    original_file1.txt sollte nicht mehr angezeigt werden.

  2. Interaktiv löschen (sicherer):

    Versuchen Sie nun, file2.txt zu löschen, diesmal mit der interaktiven Option -i:

    rm -i file2.txt
    

    Die Option -i fordert Sie vor dem Löschen jeder Datei zur Bestätigung auf. Geben Sie zur Bestätigung y (für „yes“) ein und drücken Sie die Eingabetaste. Wenn Sie n oder etwas anderes eingeben, wird die Datei nicht gelöscht.

    ls
    

    Wenn Sie den Löschvorgang bestätigt haben, ist file2.txt nicht mehr vorhanden.

  3. Sehen Sie sich an, was mit einem nicht leeren Verzeichnis passiert:

    Erinnern Sie sich an new_testdir, das durch Umbenennen von testdir_copy erstellt wurde? Es enthält weiterhin die kopierte Datei file2.txt, daher wird rmdir fehlschlagen. Prüfen Sie zunächst den Inhalt:

    ls new_testdir
    

    Sie sollten file2.txt sehen. Versuchen Sie nun rmdir:

    rmdir new_testdir
    

    rmdir (remove directory) funktioniert nur bei leeren Verzeichnissen.

    ls
    

    new_testdir kann nicht gelöscht werden, weil es nicht leer ist. Daher sollte es weiterhin in der Auflistung erscheinen.

  4. Versuchen, ein nicht leeres Verzeichnis zu löschen:

    Versuchen Sie nun rmdir für testdir, das weiterhin file2.txt enthält (diese Datei wurde in Schritt 4 kopiert):

    ls testdir
    rmdir testdir
    

    Sie werden wahrscheinlich eine Fehlermeldung wie rmdir: failed to remove 'testdir': Directory not empty sehen. Das ist zu erwarten, weil rmdir keine Verzeichnisse löschen kann, die Dateien oder andere Verzeichnisse enthalten.

  5. Ein Verzeichnis einschließlich seines Inhalts rekursiv löschen:

    Um ein nicht leeres Verzeichnis zu löschen, müssen Sie rm mit der Option -r (rekursiv) verwenden:

    rm -r testdir
    

    Dieser Befehl löscht das Verzeichnis testdir und alles, was sich darin befindet. Verwenden Sie ihn mit Vorsicht.

    ls
    

    testdir sollte nun nicht mehr angezeigt werden.

  6. Erzwingen des Löschens (mit äußerster Vorsicht verwenden):

    Manchmal möchten Sie Dateien löschen, ohne zur Bestätigung aufgefordert zu werden, selbst wenn sie schreibgeschützt sind (hier gibt es allerdings keine solchen Dateien). Die Option -f (force) erzwingt dies.

    Löschen Sie nun die versteckte Datei:

    rm .hiddenfile
    ls -a
    

    Kombinieren Sie jetzt -r und -f. Der Befehl rm -rf ist äußerst mächtig und potenziell gefährlich. Er löscht Verzeichnisse rekursiv (-r) und erzwingt das Löschen ohne Rückfrage (-f).

    !!! GEFAHRENBEREICH !!! Vergewissern Sie sich ABSOLUT, dass Sie wissen, was Sie löschen, bevor Sie rm -rf ausführen. Ein kleiner Tippfehler kann wichtige Systemdateien oder Ihre persönlichen Daten löschen. Es gibt keine Rückgängig-Funktion. Beispielsweise kann rm -rf / versuchen, das gesamte System zu löschen, sofern Sie über die erforderlichen Berechtigungen verfügen. Prüfen Sie den Pfad immer sorgfältig.

    Erstellen Sie zur sicheren Demonstration ein temporäres Verzeichnis mit einer Datei:

    mkdir temp_dir
    touch temp_dir/temp_file.txt
    ls -R temp_dir
    

    Hinweis: Vielleicht ist Ihnen aufgefallen, dass wir bei ls -R (Großbuchstabe) verwendet haben, während wir bei cp und rm -r (Kleinbuchstabe) verwendet haben. Das ist nicht nur ein Unterschied in der Groß- und Kleinschreibung – es handelt sich um völlig unterschiedliche Optionen! Bei ls bedeutet -R „rekursive Auflistung“ (Unterverzeichnisse auflisten), während -r „umgekehrte Sortierreihenfolge“ bedeutet. Bei cp und rm lautet die rekursive Option -r (Kleinbuchstabe). Lesen Sie immer die Manpage (man command), um die spezifischen Optionen eines Befehls zu verstehen.

    Löschen Sie das Verzeichnis nun zwangsweise:

    rm -rf temp_dir
    

    Überprüfen Sie den Löschvorgang:

    ls
    

    temp_dir sollte nicht mehr angezeigt werden.

Denken Sie daran: Gelöschte Dateien sind in der Linux-Befehlszeile im Allgemeinen dauerhaft verloren. Verwenden Sie rm mit Bedacht!

Zusammenfassung

Glückwunsch! Sie haben die wichtigsten Dateioperationen unter Linux gelernt:

  • Mit cd und pwd im Dateisystem navigieren
  • Mit touch und mkdir Dateien und Verzeichnisse erstellen
  • Mit ls und seinen Optionen Inhalte auflisten
  • Mit cp Dateien und Verzeichnisse kopieren
  • Mit mv Dateien und Verzeichnisse verschieben und umbenennen
  • Mit rm und rmdir Dateien und Verzeichnisse löschen

Diese Befehle bilden die Grundlage der Dateiverwaltung unter Linux. Mit etwas Übung werden Sie Dateien und Verzeichnisse sicher über die Befehlszeile verwalten können.

Verwenden Sie diese Befehle sorgfältig, insbesondere rm, da damit Dateien und Verzeichnisse dauerhaft und ohne Wiederherstellungsmöglichkeit gelöscht werden.

Lesen Sie im weiteren Verlauf Ihrer Linux-Lernreise die Manpages, zum Beispiel mit man ls, um mehr über die einzelnen Befehle und ihre Optionen zu erfahren. Viel Erfolg beim Ausprobieren!