Datei-Werkzeuge

In diesem Kontext bezeichnet der Ausdruck „Dateiverwaltung“ das Kopieren, Verschieben und Löschen von Dateien. Später werden wir auch das Ändern von Dateiattributen (Besitzer, Rechte) behandeln.

mkdir, touch: Erzeugen von leeren Verzeichnissen und Dateien

mkdir (engl. MaKe DIRectory) Wird zum Erzeugen von Verzeichnissen benutzt. Die Syntax ist relativ einfach:

mkdir [optionen] <verzeichnis> [verzeichnis ...]

Als einzige Option sollte man sich die Option -p anschauen, die zwei Dinge bewirkt:

  1. erstens erzeugt sie Eltern-Verzeichnisse, falls diese nicht schon existieren. Ohne die Option würde mkdir mit der Fehlermeldung abbrechen, dass die besagten Eltern-Verzeichnisse nicht existieren;

  2. zweitens bewirkt die Option, dass mkdir keine Fehlermeldung ausgibt, falls das anzulegende Verzeichnis bereits existiert. Ohne Option würde mkdir eine entsprechende Fehlermeldung ausgeben.

Einige Beispiele:

  • mkdir foo: erzeugt ein Verzeichnis foo im aktuellen Verzeichnis;

  • mkdir -p images/misc docs: erzeugt das Verzeichnis misc im Verzeichnis images. Zuerst wird das Elternverzeichnis erzeugt, falls es nicht existiert (-p); anschließend wird das Verzeichnis docs im aktuellen Verzeichnis angelegt.

Ursprünglich war der Befehl touch nicht zur Erzeugung von Dateien sondern zur Aktualisierung der Zugriffs- und Änderungszeiten[3] gedacht. Als Nebeneffekt erzeugt touch auch leere Dateien, falls eine Datei dieses Namens nicht bereits existiert. Die Syntax ist:

touch [optionen] datei [datei...]

Also erzeugt der Befehl:

touch datei1 images/datei2

eine leere Datei mit Namen datei1 im aktuellen Verzeichnis und eine leere Datei datei2 im Verzeichnis images, falls die Dateien noch nicht existieren.

rm: Dateien oder Verzeichnisse löschen

Der Befehl rm (engl. ReMove) ersetzt die DOS-Befehle del und deltree, enthält allerdings weitere Optionen. Es gilt die folgende Syntax:

rm [optionen] <datei|verzeichnis> [datei|verzeichnis...]

Die Optionen sind:

  • -r, oder -R: löscht rekursiv. Diese Option muss bei Verzeichnissen (egal ob leer oder nicht) angewendet werden. Allerdings können Sie zum Löschen von leeren Verzeichnissen auch den Befehl rmdir verwenden.

  • -i: verlangt vor jedem Löschvorgang eine Bestätigung. Beachten Sie bitte, dass unter Mandrakelinux rm aus Sicherheitsgründen eigentlich ein Kürzel für rm -i ist (Gleiches gilt für cp und mv). Falls Ihnen das nicht zusagt können Sie eine leere Datei ~/.alias anlegen und so alle systemweiten Kürzel ausschalten. Alternativ können Sie in Ihrer ~/.bashrc durch die Eingabe von: unalias rm cp mv gezielt diese Kürzel deaktivieren.

  • -f, das Gegenteil der Option -i, erzwingt die Löschung der Dateien/Verzeichnisse, selbst wenn der Benutzer keine Schreibberechtigung für die Dateien hat[4].

Einige Beispiele:

  • rm -i images/*.jpg datei1: löscht alle Dateien mit der Endung .jpg im Verzeichnis images, löscht die Datei datei1 im aktuellen Verzeichnis und fragt bei jeder Datei nach, ob Sie sie wirklich löschen wollen. Geben Sie zur Bestätigung y, zur Verneinung n ein.

  • rm -Rf images/misc/ file*: löscht ohne Bestätigungsabfrage das gesamte Verzeichnis misc/ im Verzeichnis images/, dazu alle Dateien des aktuellen Verzeichnisses, die mit file beginnen.

[Warning]Warnung

rm löscht Dateien unwiederbringlich. Es gibt keine Möglichkeit, die Dateien wiederherzustellen (es gibt dazu zwar ein paar Möglichkeiten, die aber alles andere als trivial sind). Verwenden Sie ruhig die Option -i als zusätzliche Sicherheit, so dass Sie nichts irrtümlich löschen.

mv: Verschieben oder Umbenennen von Dateien

Die Syntax des Befehls mv (engl. MoVe) ist wie folgt:

mv [options] <datei|verzeichnis> [datei|verzeichnis ...] <ziel>

Einige Optionen:

  • -f: erzwingt die Operation – ohne Warnung, falls eine existierende Datei dabei überschrieben wird.

  • -i: das Gegenteil: fragt vor Überschreiben einer existierenden Datei.

  • -v: verbose Modus, gibt alle Änderungen und Operationen aus.

Einige Beispiele:

  • mv -i /tmp/pics/*.png .: verschiebt alle Dateien im Verzeichnis /tmp/pics/, deren Name auf .png endet, in das aktuelle Verzeichnis (.) und fragt nach Bestätigung, falls dabei eine existierende Datei überschrieben werden sollte.

  • mv foo bar: benennt die Datei foo um in bar. Falls ein Verzeichnis bar existiert, wird die Datei foo oder das gesamte Verzeichnis des gleichen Namens inklusive aller darin enthaltenen Dateien und Unterverzeichnissen in das Verzeichnis bar verschoben.

  • mv -vf file* images/ trash/: verschiebt ohne Nachfrage alle Dateien des aktuellen Verzeichnisses mit dem Anfang file zusammen mit dem gesamten Verzeichnis images/ in das Verzeichnis trash/ und listet alle Einzeloperationen auf.

cp: Kopieren von Dateien und Verzeichnissen

cp (engl. CoPy) ersetzt die DOS-Befehle copy und xcopy, allerdings mit ein paar zusätzlichen Optionen. Die Syntax ist wie folgt:

cp [options] <datei|verzeichnis> [datei|verzeichnis ...] <ziel>

cp hat eine Vielzahl an Optionen. Es folgen die meist benutzten:

  • -R: rekursives kopieren; muss bei Verzeichnissen angewendet werden (auch bei leeren Verzeichnissen).

  • -i: fragt nach Bestätigung bevor eine Datei überschrieben wird.

  • -f: das Gegenteil von -i, überschreibt existierende Dateien ohne Nachfrage.

  • -v: verboser Modus, listet alle Einzeloperationen von cp.

Einige Beispiele:

  • cp -i /timages/* images/: kopiert alle Dateien des Verzeichnisses /timages/ in das Unterverzeichnis images/ des aktuellen Verzeichnisses. Vor Überschreiben einer Datei wird nachgefragt.

  • cp -vR docs/ /shared/mp3s/* meinkram/: kopiert das gesamte Verzeichnis docs plus alle Dateien des Verzeichnisses /shared/mp3s in das Verzeichnis meinkram.

  • cp foo bar: fertigt eine Kopie der Datei foo unter dem Namen bar im aktuellen Verzeichnis an.



[3] Unter UNIX® gibt es drei verschiedene Zeitstempel für jede Datei: für den letzten Zugriff (atime), d.h., als die Datei zuletzt zum Lesen oder Schreiben geöffnet wurde; die letzte Veränderung der Inode-Attribute (mtime); und schließlich die letzte Änderung des Inhalts der Datei (ctime).

[4] Es reicht die Schreibberechtigung für das Verzeichnis um darin enthaltene Dateien zu löschen.