Springe zu: Hauptnavigation, Themennavigation, Seiteninhalt, Spezielle Seiten

Arbeiten mit Dateien und Verzeichnissen

In diesem Artikel stelle ich grundlegende Befehle vor, die zum Arbeiten mit Dateien und Verzeichnissen notwendig sind.

Viele Befehle können ohne Optionen oder Parameter aufgerufen werden. Durch die Angabe von Optionen oder Parametern kann das Verhalten des Programmes beeinflusst werden. Für viele Optionen gibt es eine kurze und eine lange Schreibweise. Die Kurzschreibweise wird meist durch einen Bindestrich und ein folgendes Zeichen repräsentiert, während die lange Form mit zwei Bindestrichen beginnt.

pwd – Den Namen des aktuellen Arbeitsverzeichnisses ausgeben

Der Prompt der Shell zeigt nicht immer den vollständigen Pfad des aktuellen Verzeichnisses an. Mit dem Befehl pwd wird dieser ausgehend vom Wurzelverzeichnis angezeigt:

pwd
/home/simon
simon@debian:~$

Im gezeigten Beispiel befindet man sich in seinem heimatverzeichnis, dass ja durch die Raute dargestellt wird. Der Prompt der Shell könnte aber auch so eingestellt sein, dass nur der letzte Name des Pfades angezeigt wird:

pwd
/var/cache/apt/archives
simon@debian:archives$

cd – Wechselt das Verzeichnis

Möchte man in ein anderes Verzeichnis wechseln, ist der Befehl cd zu verwenden. Ruft man ihn ohne Parameter auf, wechselt man in sein Heimatverzeichnis. Mit dem Bindestrich wechselt man in das zuletzt aktuelle Verzeichnis und mit zwei Punkten wandert man in der Hirarchie nach oben:

simon@debian:~$ cd ..
simon@debian:/home$ cd ..
simon@debian:/$ cd -
/home
simon@debian:/home$ cd -
/
simon@debian:/$ cd
simon@debian:~$

Sein heimatverzeichnis kann man auch mit der Tilde ansprechen:

cd ~/testordner
simon@debian:~/testordner$

ls – Verzeichnisinhalt anzeigen

Der Befehl ls gibt den Inhalt eines Verzeichnisses aus. Es gilt folgende Syntax:

ls [OPTION]... [DATEI]...

Wird der Befehl ohne Optionen und Parameter aufgerufen, gibt er den inhalt des aktuellen Verzeichnisses in alphabetischer Reihenfolge in verschiedenen Spalten aus. Einträge, die mit einem Punkt beginnen werden ausgeblendet.

Hier eine Auswahl der möglichen Optionen:

-a oder --all
Einträge, die mit einem . Beginnen, nicht verstecken.
-A oder --almost-all
Die Einträge . und .. werden ausgeblendet.
-B oder --ignore-backups
Einträge, die mit ~ enden, werden ignoriert. Bei diesen Dateien handelt es sich meist um eine Sicherungskopie (Backup).
-d 0der --directory
Der Name des Verzeichnisses wird statt seinem Inhalt ausgegeben.
-F oder --classify oder -p oder --file-type
Anhängen eines Zeichens zur Typisierung jedes Eintrags (eines aus /=@|).
--full-time
Datum und Uhrzeit werden vollständig angezeigt.
-G oder --no-group
Die Ausgabe von Gruppeninformationen wird unterdrückt.
-h oder --human-readable
Die Ausgabe von Dateigrößen geschieht in einem besser lesbaren Format (zum Beispiel 1K, 14M, 2G).
-i oder --inode
Die INode-Nummer wird ausgegeben.
-i MUSTER oder --ignore=MUSTER
Einträge, die auf das angegebene Muster passen, werden ignoriert.
-l
Eine ausführliche Liste wird angezeigt.
-L oder --dereference
Bei symbolischen Verknüpfungen die Eigenschaften der jeweiligen Zieldatei anzeigen.
-m
so viele Einträge wie möglich, durch Kommata getrennt, in einr Zeile ausgeben.
-n oder --numeric-uid-gid
Die User- und Gruppen-IDs werden nicht in Namen aufgelöst, sondern als Nummern ausgegeben.
-o
Es wird ein langes Listenformat ohne die Ausgabe der Gruppen-Informationen verwendet.
-r
Die Ausgabe wird in umgekehrter Reihenfolge vorgenommen.
-r oder --reverse
Umgekehrte Reihenfolge beim Sortieren.
-R oder --recursive
Rekursive Ausgabe von Unterverzeichnissen.
-S
Die Ausgabe wird nach der Dateigröße sortiert.
-t
Die Dateien werden nach ihrer Änderungszeit sortiert.
-u
Die Dateien werden nach ihrer Zugriffszeit sortiert.
-v
Die Dateien werden nach ihrer Version sortiert.
-X
Die Einträge werden nach ihrer Dateierweiterung sortiert.
-1
Ein Eintrag pro Zeile wird ausgegeben.

Das folgende Beispiel sortiert die Dateien im Ordner /var/log/apache/ nach ihrem Änderungszeitpunkt und zeigt die Einträge in einer ausführlichen Liste an:

ls -lt /var/log/apache/
insgesamt 512
-rw-r--r--    1 root     root       267714 30. Sep 11:20 access.log
-rw-r--r--    1 root     root        37380 30. Sep 11:20 agent.log
-rw-r--r--    1 root     root        24353 30. Sep 11:20 referer.log
-rw-r--r--    1 root     root       187488 30. Sep 09:22 error.log

Das Ergebnis des gezeigten Befehls ist eine siebenspaltige Ausgabe. Die Bedeutung der Spalten wird im Folgenden beschrieben. Die Werte in Klammern beziehen sich auf die obige Ausgabe.

1. Spalte (rw-rr-)

Das erste Zeichen bestimmt den Typ des Eintrages. Folgende Zeichen sind möglich:

-
Es handelt sich um eine normale Datei.
c
Es handelt sich um ein zeichenorientiertes Gerät (zum Beispiel /dev/vcs1).
d
Der Eintrag ist ein Verzeichnis.
l
Es handelt sich um einen symbolischen Link.
s
Es handelt sich um einen Socket.

Die nächsten drei Zeichen stehen für die Rechte des Eintrag-Eigentümers, weitere drei Zeichen für die Rechte der Gruppenmitglieder und die letzten drei für die Rechte aller anderen Benutzer. Es sind jeweils folgende Zeichen möglich:

r
Ist der Buchstabe r gesetzt, verfügt man über das Leserecht für die Datei oder das Verzeichnis.
w
Ein w bedeutet bei Dateien, dass man deren Inhalt verändern kann. Bei einem Verzeichnis darf man neue Einträge hinzufügen oder entfernen.
x
Ein x bei einer Datei bedeutet, dass man das Programm ausführen darf. Ist das x bei einem Verzeichnis gesetzt, darf man in das Verzeichnis wechseln.

2. Spalte (1)

Diese Zahl gibt die Anzahl der Hardlinks aus.

3. Spalte (root)

Hier steht der Name des Eigentümers des Eintrages.

4. Spalte (root)

Der Eintrag gehört der angegebenen Benutzergruppe.

5. Spalte (267714)

In der 5. Spalte steht die Dateigröße.

6. Spalte (30. Sep 11:20)

In dieser Spalte steht, wenn nicht anders angegeben, das Datum der letzten Änderung.

7. Spalte (access.log)

In der letzten Spalte steht der Name des Eintrages. Handelt es sich um einen symbolischen Link, wird der Name des Eintrages und der Pfad zum Ziel ausgegeben.

touch – Zugriffs- und Aktualisierungszeit einer Datei verändern

Mit dem Befehl touch kann man die Zugriffs- und Aktualisierungszeit einer Datei auf das aktuelle Datum setzen. Beim Aufruf muß mindestens ein Dateiname
angegeben werden. Es gilt folgende Syntax:

touch [OPTION]... DATEI...

Als zwingendes Argument ist ein Dateiname mitzugeben. Folgende Optionen sind möglich:

-a
Es wird nur die Zugriffszeit geändert.
-c oder --no-create
Es werden keine neuen Dateien erstellt.
-d Zeichenkette oder --date=Zeichenkette
Statt der aktuellen Zeit wird die übergebene Zeichenkette verwendet.
-m
Es wird nur die Modifikationszeit aktualisiert.
-r Datei oder --reference=Datei
Es werden die Zeiten der angegebenen Datei verwendet.

Ist die angegebene Datei noch nicht vorhanden, wird sie angelegt.

mkdir – Verzeichnisse anlegen

Mit dem Befehl mkdir kann ein neues Verzeichnis angelegt werden, wenn dieses noch nicht existiert. Das Programm verwendet folgende Syntax:

mkdir [OPTION] VERZEICHNIS...

Als zwingendes Argument ist ein Verzeichnisname anzugeben. Folgende Optionen stehen zur Verfügung:

-m Modus oder --modus=Modus
Mit dieser Option können die Zugriffsrechte gesetzt werden.
-p oder --parents
Übergeordnete Verzeichnisse werden, falls noch nicht vorhanden, erstellt.
-v oder --verbose
Für jedes angelegte Verzeichnis wird eine Meldung ausgegeben.
--help
eine Kurze Hilfe wird angezeigt.
--version
Informationsinformationen werden ausgegeben.

rm – Dateien oder Verzeichnisse löschen

Mit dem Befehl rm können Dateien und Verzeichnisse gelöscht werden. Es gilt folgende Syntax:

rm [OPTION]... DATEI...

Es muss also zwingend ein Datei- oder Verzeichnisname angegeben werden. Es gibt folgende Optionen:

-f oder --force
Das Programm führt die Anweisung ohne vorige Nachfragen aus.
-i oder --interactive
Vor jeder Entfernung wird nachgefragt.
-r oder -R oder --recursive
Verzeichniseinträge werden rekursiv entfernt.
-v oder --verbose
Durchgeführte Tätigkeiten erklären.

Das folgende Beispiel entfernt alle Dateien mit der Erweiterung .exe und gibt Informationen am Bildschirm aus:

rm -v *.exe
Entfernen von »install.exe«
Entfernen von »jfw.exe«
Entfernen von »setup_pkx.exe«

Das folgende Beispiel löscht den Ordner test mit all seinen Einträgen:

rm -r test/

rmdir – leere Verzeichnisse löschen

Mit diesem Programm können leere Verzeichnisse gelöscht werden. Dieser Befehl verwendet folgende Syntax:

       rmdir [OPTION]... VERZEICHNIS...

Als zwingendes Argument ist ein verzeichnis anzugeben. Folgende Optionen stehen zur Verfügung:

--ignore-fail-on-non-empty
Ignorieren von Fehlschlägen, denen ausschließlich nicht-leere Verzeichnisse zugrunde liegen.
-p oder --parents
Entfernen von VERZEICHNIS, dann versuchen, jede Verzeichniskomponente im Pfadnamen zu entfernen. Zum Beispiel ist »rmdir -p a/b/c« das gleiche wie »rmdir a/b/c a/b a«.
-v oder --verbose
Ausgabe einer Diagnose für jedes bearbeitete Verzeichnis.

cp – Dateien/Verzeichnisse kopieren

Mit dem Befehl cp können Dateien und Verzeichnisse kopiert werden. Es gilt folgende Syntax:

cp [OPTION]... QUELLE ZIEL

Der Befehl erwartet also zwei Argumente. Folgende Optionen sind verfügbar:

-a oder --archive
Genau wie -dpR.
--backup[=KONTROLLE]
Erzeugen einer Sicherung von existierenden Zieldateien.
-b
Wie --backup, akzeptiert aber kein Argument.
-d oder --no-dereference
nie symbolischen Verknüpfungen folgen.
-f oder --force
Wenn eine existierende Zieldatei nicht geöffnet werden kann wird sie gelöscht und es noch einmal versucht.
-i oder --interactive
Vor einem Überschreiben nachfragen.
-H
Symbolischen Verknüpfungen der Kommandozeile folgen.
-l oder --link
Verknüpfung auf Datei statt Kopie erstellen.
-L oder --dereference
Folge symbolischen Verknüpfungen immer.
-p oder --preserve
Datei-Attribute wenn möglich erhalten.
--parents
Quell-Pfad an VERZEICHNIS anhängen.
--remove-destination
Löschen jeder Zieldatei vor dem Versuch sie zu öffnen. (Im Kontrast zu --force)
-R oder --recursive
Rekursives Kopieren von Verzeichnissen.
--strip-trailing-slashes
Entfernen von folgenden Schrägstrichen von allen QUELLE Argumenten.
-s oder --symbolic-link
Erzeugen von symbolischen Verknüpfungen statt kopieren.
-S SUFFIX oder --suffix=SUFFIX
Überschreiben der normalen Anhänge für Sicherungen.
--target-directory=VERZ
Verschieben aller QUELLE Argumente in das Verzeichnis VERZ.
-u oder --update
Nur kopieren, wenn die QUELL-Datei neuer ist als die Zieldatei oder die Zieldatei nicht existiert.
-v oder --verbose
Durchgeführte Tätigkeiten erklären.
-x oder --one-file-system
In diesem Dateisystem verbleiben.

Das folgende Beispiel kopiert alle Dateien des Ordners /var/log/apache/ in das aktuelle Arbeitsverzeichnis des Benutzers. Unterverzeichnisse werden nicht kopiert:

cp /var/log/apache/* .

mv – Dateien/Verzeichnisse umbenennen/verschieben

Mit diesem Befehl können Dateien und Verzeichnisse umbenannt oder verschoben werden. Es gilt folgende Syntax:

mv [OPTION]... QUELLE ZIEL

Folgende Optionen sind möglich:

--backup[=KONTROLLE]
Anlegen von Sicherung vor Entfernen.
-b
Wie --backup, akzeptiert aber keine Argumente
-f oder --force
Existierende Ziele entfernen, nie fragen.
-i oder --interactive
Vor Überschreiben nachfragen.
--strip-trailing-slashes
Entfernen von Schrägstrichen vom Ende jedes QUELLE-Arguments.
-S SUFFIX oder --suffix=SUFFIX
Die normale Sicherungs-Erweiterung überschreiben.
--target-directory=VERZ
Verschieben aller Quellen in Verzeichnis VERZ.
-u oder --update
Nur ältere oder brandneue Dateien verschieben.
-v oder --verbose
Erklärung über Abläufe ausgeben.
-V WORD oder --version-control=WORD
Die normale Versionskontrolle überschreiben.

file – Dateityp ermitteln

Unter Linux hat die Dateierweiterung nicht zwingend etwas mit dem Typ einer Datei zu tun. Daher kann man mit dem Befehl file den Dateityp ermitteln. Hier ein paar Beispiele:

file ai.wav
ai.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, mono 44100 Hz
file dvdaudioextractor.exe
dvdaudioextractor.exe: MS-DOS executable (EXE), OS/2 or MS Windows
file /lib/libcrypt-2.3.2.so
/lib/libcrypt-2.3.2.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), stripped
file fußball.ogg
fußball.ogg: Ogg data, Vorbis audio, stereo, 44100 Hz, ~96000 bps, created by: Xiph.Org libVorbis I (1.0)
file backup.sh
backup.sh: Bourne shell script text executable

Weitere Informationen zu den vorgestellten Befehlen findest du in den jeweiligen Manual- oder Info-Seiten. Diese lassen sich mit den Kommandos “man Befehl” oder “info Befehl” aufrufen.

Datum der Veröffentlichung: Samstag, 25.11.2006

Nach oben

Diese Seite drucken