Was grafische Dateimanager wie Konqueror und Nautilus mit Hilfe von Mausklicks und komfortablen Features wie Drag & Drop erledigen, erreichen Sie auf der Shell mit verschiedenen Kommandos. Dieser Artikel stellt die Befehle mkdir, rmdir, cd, touch, cp, mv sowie rm vor und zeigt, wie Sie Ihre Daten äußerst effizient auf der Konsole verwalten.
Verzeichnisse anlegen und löschen
Mit dem Befehl mkdir ("make directory", erstelle Verzeichnis) legen Sie neue Ordner an. Das Kommando
mkdir ordner1
erstellt das Verzeichnis ordner1 im aktuellen Verzeichnis. Die Zugriffsrechte [1] des neuen Verzeichnisses regelt die Umask (sihe Kasten "Umask"). Soll es andere Rechte erhalten, verändern Sie diese über den Schalter -m. Geben Sie die Berechtigungen dazu über eine entsprechende Oktalzahl an (Listing 1).
$ mkdir ordner1 $ mkdir -m 777 ordner2 $ ls -l drwxr-xr-x 2 huhn huhn 4096 2006-12-28 14:07 ordner1/ drwxrwxrwx 2 huhn huhn 4096 2006-12-28 14:08 ordner2/
Umask
Die Umask beeinflusst die Zugriffsrechte, mit denen das Filesystem neue Dateien und Verzeichnisse versieht. Geben Sie am Prompt einfach nur umask ein, um den aktuellen Wert dieser Variablen auszugeben. Sie sehen eine vierstellige Oktalzahl, die definiert, welche Rechte entzogen werden.
Steht hier beispielsweise 0022, bedeutet das für Textdateien, die standardmäßig im Modus 666 (Lese- und Schreibrecht für jeden) erzeugt werden, dass sie 644 (666 minus 022), also -rw-r--r-- erhalten. Bei Verzeichnissen lautet die Rechtevorgabe 777 (alle Rechte für jeden); sie erhalten daher bei einer Umask von 0022 die Rechte 755 (drwxr-xr-x).
Über das Kommando umask verändern Sie darüber hinaus die Maske selbst. Um die Einstellungen dauerhaft zu machen, schreiben Sie das Kommando in die Bash-Konfigurationsdatei .bashrc in Ihrem Home-Verzeichnis.
Das Kommando versteht auch relative und absolute Pfadangaben [2]. Um beispielsweise einen Ordner unterhalb des Verzeichnisses musik anzulegen, müssen Sie sich nicht dort aufhalten, sondern geben den Pfad gleich mit an:
mkdir musik/Metallica
Existiert das übergeordnete Verzeichnis nicht, dann beschwert sich mkdir:
mkdir: kann Verzeichnis "musik/Metallica" nicht anlegen: Datei oder Verzeichnis nicht gefunden
Setzen Sie in diesem Fall die Option -p ein, die auf Wunsch auch ganze Ordnerhierarchien anlegt. Anstatt die Befehlskette:
mkdir musik mkdir musik/Metallica mkdir musik/Metallica/Load
einzugeben, reicht zusammen mit diesem Parameter ein einziges Kommando:
mkdir -p musik/Metallica/Load
Der Befehl zum Löschen von Verzeichnissen heißt entsprechend rmdir ("remove directory", entferne Verzeichnis). Bei noch nicht vllig geleerten Ordnern verweigert rmdir die Zusammenarbeit:
$ rmdir ordner1 rmdir: "ordner1/": Das Verzeichnis ist nicht leer
Räumen Sie in diesem Fall entweder den Ordner zuerst leer, oder greifen Sie direkt zum Befehl rm (siehe Abschnitt "Tabula Rasa"), der eine Option zum Erzwingen von Löscharbeiten mitbringt. Den Parameter -p kennt rmdir ebenfalls. Vorausgesetzt, dass alle Ordner leer sind, fegt das Kommando
rmdir -p musik/Metallica/Load
alle drei Verzeichnisse in einem Rutsch von der Platte.
Der richtige Touch
Das Kommando touch wird häufig dazu verwendet, neue leere Dateien anzulegen. Der Aufruf
touch poak
legt im aktuellen Verzeichnis eine leere Datei namens poak an, sofern diese noch nicht existiert. Auch dieser Befehl wertet die Umask aus, um die Zugriffsrechte automatisch zu setzen.
Existiert das File schon, ändert touch den Timestamp der Datei und setzt die Zugriffs- und die Änderungszeit der Datei auf die aktuelle Zeit. Das ergibt vor allem im Zusammenspiel mit make Sinn: Wie Sie aus der vorletzten Zu-Befehl-Folge [3] wissen, arbeitet dieses Kommando nur, wenn sich eine oder mehrere Quelldateien geändert haben. Um Make zur Mitarbeit zu "überreden", auch wenn sich an den Sourcen nichts geändert hat, modifizieren Sie mit touch einfach den Timestamp der Quelldateien, etwa touch *.tex.



