![]() |
|
||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
Guru-TrainingOrdnung ist das halbe Leben...von Heike Jurzik |
In den meisten Home-Verzeichnissen sammeln sich mit der Zeit unzählige Dateien an. Übersichtlicher wird das Ganze, wenn man die Daten in Unterverzeichnisse sortiert. Natürlich können Sie diese Aufgabe in KDEs Dateimanager Konqueror lösen -- allerdings nur mit vielen Mausklicks.
Durch den Verzeichnisdschungel navigieren, neue Verzeichnisse anlegen und wieder löschen, Dateien kopieren oder verschieben bzw. umbenennen -- bei all diesen Aufgaben arbeiten Sie auf der Kommandozeile viel effizienter als mit grafischen Tools. Die Befehle cd, mkdir, rmdir, cp und mv helfen dabei und bringen Übersicht ins Datenchaos.
Mit dem Befehl cd (englisch: change directory) navigieren Sie schnell durch die Verzeichnishierarchie. Unter Linux ist diese wie ein Baum aufgebaut: Ganz oben liegt das Wurzelverzeichnis /, das auch Root-Verzeichnis genannt wird (nicht mit dem Administrator root zu verwechseln). Das Wurzelverzeichnis enthält (neben Dateien) Unterverzeichnisse aus, die ihrerseits wieder Verzeichnisse und Dateien enthalten können -- der Verzweigung sind keine Grenzen gesetzt.
Wer das gern etwas anschaulicher hätte, öffnet den Dateimanager Konqueror: Wechseln Sie über das Menü Ansicht / Anzeigemodus zur Baum-Ansicht. Um ins Wurzelverzeichnis zu gelangen, klicken Sie entweder mit der Maus solange auf den Aufwärts-Knopf, bis es nicht weiter nach oben geht, oder tippen in die Adresszeile file:/ (Abbildung 1).
Was auf den ersten Blick recht unübersichtlich wirkt, folgt doch festen Regeln. Der so genannte "Filesystem Hierarchy Standard" legt fest, was in welchen Verzeichnissen liegen sollte. So finden sich Bibliotheken beispielsweise in /lib oder /usr/lib. In /bin und /sbin liegen ausführbare Programme (englisch: binaries), wobei /sbin Programme enthält, die der Administrator verwendet. Systemweite Konfigurationsdateien finden Sie in /etc, Gerätedateien in /dev. Ihr Home-Verzeichnis und das von anderen Benutzern befindet sich unterhalb der /home-Hierarchie.
Mit dem Befehl cd wandern Sie von Verzeichnis zu Verzeichnis. Dabei können Sie vom Wurzelverzeichnis aus starten und sich von dort bis ins Zielverzeichnis "herabhangeln", also den absoluten Pfad angeben:
cd /etc/MPlayer
Alternativ gehen Sie den relativen Pfad -- relativ von Ihrem derzeitigen Aufenthaltsort aus. In welchem Verzeichnis Sie sich gerade befinden, verrät das Kommando pwd (englisch: print working directory):
suse9@transpluto:~> pwd /home/suse9
Um den relativen Pfad zu verwenden, wandern Sie zuerst schrittweise nach oben bis zur Wurzel und von da ins Zielverzeichnis. Dazu sollten Sie wissen, dass .. jeweils das nächst höher liegende Verzeichnis meint. Der relative Pfad von /home/suse9 zu /etc/MPlayer lautet also:
cd ../../etc/MPlayer/
Übrigens: Wer noch unter MS-DOS auf der Kommandozeile gearbeitet hat, wird sich an cd.. (ohne Leerzeichen zwischen Befehl und den beiden Punkten) erinnern. Unter Linux geht das nicht, da die Bash cd.. als ein Kommando identifiziert und nach dem entsprechenden Befehl vergeblich sucht. Sie können aber einen Alias definieren, eine Art "Abkürzung", um ein Programm (mit seinen Optionen) unter einem anderen Namen starten zu können:
alias cd..="cd .."
Da auf diese Weise definierte Alias-Namen nur für die Shell gelten, in der sie definiert wurden, und nach dem Ausloggen wieder verloren gehen, können Sie die Definition in eine der Startdateien in Ihrem Home-Verzeichnis, z. B. .profile oder .bashrc eintragen.
Der Befehl cd ohne weitere Angaben bringt Sie ins eigene Home-Verzeichnis zurück. Die Bash speichert außerdem, in welchem Verzeichnis Sie zuletzt waren -- mit cd - kommen Sie dorthin zurück. Dabei merkt sich die Shell immer nur den jeweils letzten Aufenthalt -- wiederholtes cd - lässt Sie also vor und zurück springen:
suse9@transpluto:~> cd OpenOffice.org1.1/user/gallery/ suse9@transpluto:~/OpenOffice.org1.1/user/gallery> cd suse9@transpluto:~> cd - suse9@transpluto:~/OpenOffice.org1.1/user/gallery>
Das Kommando mkdir (englisch: make directory) erstellt ein neues Verzeichnis. Geben Sie einen einfachen Namen ohne Pfadbezeichnung an, wird der neue Ordner im aktuellen Verzeichnis angelegt:
mkdir bilder
Wer weitere Unterverzeichnisse in bilder erstellen möchte, muss aber nicht mit dem cd-Befehl in das neue Verzeichnis hineinwechseln und von dort weiterarbeiten -- mkdir versteht auch Pfadangaben:
mkdir bilder/party
Praktisch: Für eine ganze Verzeichnishierarchie, also z. B. bilder/party/karneval/2004, müssen Sie nicht mehrfach mkdir aufrufen und sämtliche Verzeichnisnamen tippen. Stattdessen nutzen Sie die Option -p, die den kompletten Pfad zum neuen Verzeichnis erstellt, falls er noch nicht existiert. Anstelle von
mkdir bilder mkdir bilder/party mkdir bilder/party/karneval mkdir bilder/party/karneval/2004
reicht ein einziger Befehl:
mkdir -p bilder/party/karneval/2004
Das Kommando zum Löschen von Verzeichnissen heißt rmdir (englisch: remove directory). Dabei entfernt der Befehl aber nur Ordner, die vollständig leer sind:
suse9@transpluto:~> rmdir bilder rmdir: »bilder/«: Das Verzeichnis ist nicht leer
Das ls-Kommando hilft dabei, auch versteckte Dateien oder Verzeichnisse, die mit einem Punkt anfangen, aufzuspüren. Verwenden Sie dazu die Option -a:
suse9@transpluto:~> ls -a bilder . .. .petronella.jpg
Natürlich können Sie jetzt erst aufwändig mit rm alle Dateien einzeln entfernen -- praktischer ist es, wenn Sie dem Befehl die Option -r mit auf den Weg geben: Dann räumt rm rekursiv bis in den letzten Winkel auf. Um das Verzeichnis bilder inklusive aller Unterverzeichnisse leer zu putzen, verwenden Sie also den Befehl rm -r bilder, und wenn Sie zusätzlich die Option -v anhängen, erfahren Sie, was hinter den Kulissen abläuft (Abbildung 2).
rmdir bietet genau wie mkdir den Parameter -p, der eine ganze Hierarchie von Verzeichnissen löscht. Lautet der Befehl beispielsweise
rmdir -p bilder/party/karneval/2004
versucht rmdir zunächst, das unterste Verzeichnis, also 2004, zu löschen. Hat das geklappt, entfernt der Befehl das nächst höher liegende Verzeichnis (karneval), usw. Sobald rmdir allerdings auf Dateien in einem der Verzeichnisse trifft, bricht das Kommando die Arbeit ab.
Eine oder mehrere Dateien kopieren Sie mit dem Befehl cp (englisch: copy). Der Aufruf lautet cp datei ziel, wobei Sie als Ziel entweder einen Dateinamen oder ein Verzeichnis angeben können. Um im aktuellen Verzeichnis eine Kopie einer Datei anzulegen, tippen Sie:
cp bild.jpg kopie-bild.jpg
Vorsicht: Gibt es schon eine Datei mit Namen kopie-bild.jpg, wird diese einfach überschrieben. Auf der sicheren Seite sind Sie, wenn Sie cp mit der Option -i (interaktiv) verwenden:
suse9@transpluto:~> cp -i bild.jpg kopie-bild.jpg cp: »kopie-bild.jpg« überschreiben?
Diese Frage können Sie bestätigen, indem Sie mit j, J, y oder Y antworten -- alles andere wird als "Nein" interpretiert. Wer bei den ersten Kopierversuchen noch unsicher ist, kann stattdessen den Parameter -b (Backup) einsetzen. Der Befehl cp -b bild.jpg kopie-bild.jpg legt ein Backup an, falls die Zieldatei bereits vorhanden ist. Auf diese Weise "gesicherte" Dateien erkennen Sie an der angehängten Tilde ~, also beispielsweise kopie-bild.jpg~.
Um mehrere Dateien in ein Verzeichnis zu kopieren, hängen Sie zunächst die Dateinamen hintereinander und geben als letztes Argument das Zielverzeichnis an:
cp bild.jpg kopie-bild.jpg bilder_kopien/
Das Zielverzeichnis muss vorhanden sein, andernfalls meldet das Kommando:
cp: Kopieren mehrerer Dateien, aber der letzte Parameter »bilder_kopie« ist kein Verzeichnis »cp --help« gibt weitere Informationen.
Wildcards, so genannte Jokerzeichen, erleichtern die Arbeit. Mit diesen Platzhaltern ersetzen Sie Teile von Zeichenketten. Ein Fragezeichen ? lässt dabei genau einen Buchstaben unbestimmt (z. B. h?llo => hallo, hGllo, h7llo, ...), während das Sternchen * für beliebig viele verschiedene Zeichen steht (z. B. G*ss => Guss, Genuss). Um also alle Dateien, die auf .jpg enden, in das Verzeichnis bilder_kopien zu kopieren, tippen Sie einfach cp *.jpg bilder_kopien/.
Der Versuch, ganze Verzeichnisse zu kopieren, scheitert im ersten Anlauf:
suse9@transpluto:~> cp bilder_kopien/ neue_kopien/ cp: Verzeichnis »bilder_kopien/« ausgelassen
Erst mit der Option -r (rekursiv) erledigt cp diese Aufgabe:
suse9@transpluto:~> cp -r bilder_kopien/ neue_kopien/ suse9@transpluto:~> ls neue_kopien/ bild1.jpg bild2.jpg [...]
Der Befehl mv verschiebt Dateien oder gibt ihnen einen neuen Namen. Diese doppelte Funktion des Befehls wirkt zunächst etwas verwirrend, ist aber schnell erklärt.
Als ersten Parameter (die Quelle) geben Sie eine Datei oder ein Verzeichnis an. Der zweite Parameter ist das Ziel -- entweder ein schon vorhandenes Verzeichnis oder ein Datei- bzw. Verzeichnisname. Tabelle 1 gibt eine Übersicht und Beispiele für die verschiedenen Szenarien.
| Tabelle 1: Möglichkeiten mit mv | ||
| mv a b | a ist eine Datei, z. B. /home/suse9/datei1.txt | a ist ein Verzeichnis, z. B. /home/suse9/dir1/ |
| b ist eine Datei, z. B. /tmp/datei2.txt | Datei a wird verschoben und heißt jetzt b, Im Beispiel wandert datei1.txt nach /tmp und heißt /tmp/datei2.txt | geht nicht |
| b ist ein Verzeichnis, z. B. /home/suse9/dir2/ | Datei a wird in Verzeichnis b hinein geschoben, das Ergebnis ist /home/suse9/dir2/datei1.txt | Verzeichnis a wird in Verzeichnis b verschoben. Das Ergebnis ist: /home/suse9/dir2/dir1 |
| b ist nicht vorhanden, aber b ist von der Form /x/y/z/B und /x/y/z/ gibt es | Datei a wird nach /x/y/z/ verschoben und heißt danach B, Ergebnis /x/y/z/B | Verzeichnis a wird nach /x/y/z/ verschoben und umbenannt, Ergebnis: a heißt jetzt B: /x/y/z/B/ |
Um im aktuellen Verzeichnis eine Datei namens bild.jpg in panorama.jpg umzubenennen, tippen Sie:
mv bild.jpg panorama.jpg
Auch ganzen Verzeichnissen können Sie auf diese Weise einen neuen Namen geben. Um beispielsweise das Verzeichnis bilder_kopien/backup/ in bilder_kopien/backup.alt/ umzubenennen, verwenden Sie:
mv bilder_kopien/backup bilder_kopien/backup.alt
Achten Sie auch bei den mv-Befehlen immer auf den richtigen Pfad, damit das Verzeichnis wirklich umbenannt und nicht verschoben wird. Wenn Sie anstelle des gerade gezeigten Befehls
mv bilder_kopien/backup backup.alt
eingeben, bleibt backup.alt nicht etwa unterhalb von bilder_kopien, sondern landet im aktuellen Verzeichnis.
Für das Verschieben von Dateien kennt mv ebenfalls die Option -i (interaktiv), die nachfragt, wenn im Zielverzeichnis bereits eine Datei mit gleichem Namen liegt:
suse9@transpluto:~> mv -i bilder_kopien/bild.jpg neue_kopien/ mv: »neue_kopien/bild.jpg« überschreiben?
Die hier vorgestellten Kommandos helfen dabei, die eigenen Daten besser zu sortieren und zu organisieren. Damit Sie im Ernstfall nicht versehentlich das komplette Home-Verzeichnis entrümpeln, experimentieren Sie ruhig ein bisschen mit den Befehlen und Optionen. Und natürlich gilt wie immer: Backups nicht vergessen -- sicher ist sicher. (hge)
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite |
Datenschutz |
© 2012 Linux New Media AG |
Last modified: 2007-01-25 17:13
[Linux-Magazin]
[LinuxUser]
[Linux-Community]
[Admin-Magazin]
[Ubuntu User]
[Smart Developer]
[Linux Events]
[Linux Magazine]
[Ubuntu User]
[Admin Magazine]
[Smart Developer]
[Linux Magazine Poland]
[Linux Community Poland]
[Linux Magazine Brasil]
[Linux Magazine Spain]
[Linux Technical Review]