In bester Ordnung
Datenverwaltung auf der Shell
Let's move!
Das Programm mv ("move", bewegen) verschiebt Dateien oder gibt ihnen einen neuen Namen. Auch diesem Kommando geben Sie eine Quelle und ein Ziel mit auf den Weg. Als Quelle bennen Sie eine Datei oder ein Verzeichnis und als Ziel entweder ein Verzeichnis oder einen Datei- bzw. Verzeichnisnamen. Um eine vorhandene Datei datei1 aus dem aktuellen Verzeichnis beispielsweise in den vorhandenen Ordner verzeichnis1 zu verschieben, tippen Sie:
mv datei1 verzeichnis1
Existiert der Zielordner nicht, erhält die Datei hingegen einen neuen Namen und heißt nun verzeichnis1 – zum Umbenennen geben Sie also einfach einen neuen Bezeichner an.
Ebenso wie cp bringt mv die beiden Optionen -i und -b mit, die Ihre Daten entweder durch eine Sicherheitsabfrage oder Backups vor dem unbeabsichtigten Löschen bei unvorsichtigen Aufräumarbeiten bewahren.
Tabula Rasa
Überlicherweise führt der Befehl rm datei ohne Umschweife zum Löschen der angegebenen Datei: rm ("remove", löschen) fackelt nicht lange und entfernt Dinge, ohne nachzufragen. Einzige Ausnahme: Wenn es sich um eine als "read only" gekennzeichnete Datei handelt, holt rm eine Bestätigung ein (siehe Listing 2).
$ ls -l -r--r--r-- 1 huhn huhn 0 2006-12-28 16:44 datei … $ rm datei rm: reguläre Datei (schreibgeschützt) "datei" entfernen?
Als Vorsichtsmaßnahme ist dieses allerdings nicht empfehlenswert; setzen Sie dazu besser die Option -i ein, die das Kommando (ebenso wie cp und mv) in den interaktiven Modus versetzt:
$ rm -i datei rm: reguläre Datei "datei" entfernen?
Liegen viele schreibgeschützte Dateien in einem Ordner und haben Sie keine Lust, den Löschvorgang für jedes File einzeln zu bestätigen, teilen Sie rm das über den Schalter -f ("force", erzwingen) mit.
Noch gründlicher laufen die Löscharbeiten, wenn Sie die Option -r einsetzen: rm entfernt nun auch Unterverzeichnisse samt Inhalt, rekursiv bis in den letzten Winkel. Was rmdir also ins Straucheln bringt, wenn der oder die Ordner nicht leer sind, schafft ein einfaches rm -r aus der Welt. Wer sich dafür interessiert, was dabei hinter den Kulissen abläuft und an welcher Stelle rm gerade fegt, setzt zusätzlich den Parameter -v ein (Abbildung 2).
Dateien, die mit einem Sonderzeichen beginnen, wie etwa dem Minus, bereiten Probleme: rm verweigert (genau wie andere Kommandos) die Zusammenarbeit. Das liegt daran, dass die Shell das erste Zeichen nach dem Minus als Parameter interpretiert und daher nicht ans Ziel kommt. Mit einem kleinen Trick entfernen Sie solche Problemfälle: Geben Sie rm ./-datei ein, um -datei zu löschen und nicht als Befehlsoptionen zu interpretieren. Alternativ schreiben Sie zwei Bindestriche vor die Datei (rm -- -datei) und sorgen so dafür, dass alles nach diesen zwei Bindestrichen nicht mehr als Parameter, sondern als Argument (also Gegenstand der Operation) aufgefasst wird.
Glossar
Timestamp
Unix-Dateisysteme verwalten für eine Datei verschiedene Datumseinträge, wie beispielsweise die Zeit des letzten Zugriffs oder der letzten Änderung. Gerade für Backups oder Sicherungskopien ist es wichtig, den Zeitstempel der Originalzeit (etwa den der letzten Modifikation) zu behalten, bevor man vielleicht ein falsches File weiter bearbeitet.
Umgebungsvariable
Die Shell stellt dem Benutzer einen Speicher bereit, um bestimmte Informationen aufzubewahren und Programmen zugänglich zu machen. Diese Umgebungsvariablen ("environment variables") bestehen jeweils aus dem Namen und dem zugeordneten Wert.
Symlink
(Symbolischer Link) Ein Verweis auf eine andere Datei, der von Anwendungsprogrammen wie eben diese Datei behandelt wird. Löscht man die Datei, auf die ein Symlink verweist, zeigt der Link ins Leere. Symlinks sind das Ergebnis des Kommandos
ln -s.
[1] Zugriffsrechte: Heike Jurzik, "Gleiches Recht für alle?", LinuxUser 07/2004, S. 69, http://www.linux-user.de/ausgabe/2004/07/069-zubefehl/
[2] Pfade und Navigation im Dateisystem: Heike Jurzik, "Auf dem rechten Pfad", LinuxUser 08/2003, S. 80, http://www.linux-user.de/ausgabe/2003/08/080-zubefehl/
[3] Make: Heike Jurzik, "Gekonnt delegiert", LinuxUser 12/2006, S. 93, http://www.linux-user.de/ausgabe/2006/12/093-zubefehl-make/



