next | next | up | down | Inhalt | Uebungen | Complete | Kommentar

all, section 3.5.

3.5.  Kataloge

Dateisystem traversieren: (find)

$ find pfad... bedingung... -o bedingung...

find traversiert Katalogbäume und verknüpft alle Dateinamen mit den Bedingungen.

Bedingungen sind UND-verknüpft, können mit ! negiert, mit -o ODER-verknüpft und mit \( \) geklammert werden. Je nach Version von find gibt es sehr viele Bedingungen, zum Beispiel:

-print              aktuellen Pfad ausgeben; immer wahr
-atime -5           Zugriff seit weniger als 5 Tagen?
-exec ls -l {} \;   Kommando für aktuellen Pfad erfolgreich?
-name muster        paßt Dateiname?
-newer datei        später geändert als die Datei?
-size 0             leer?
-type d             ist es Katalog?
-user name          richtiger Besitzer?
$ cd /home/bischof/X
$ find a b -type d -print -exec ls -l {} \;
$ find a b -type d -print -exec ls -l {} \;
a
total 0
-rw-r--r--   1 bischof  inform          0 Apr  4 16:13 in_a
b
total 0
-rw-r--r--   1 bischof  inform          0 Apr  4 16:13 in_b

-name wendet ein Muster nur auf die aktuelle Pfadkomponente an. Wenn man ganze Pfade untersuchen will, muß man eine Kombination von du -a und grep verwenden.

$ touch an aber 
$ find . -name a*
find: paths must precede expression
Usage: find [path...] [expression]
$ find . -name 'a*' -print
./an
./aber

Kataloge erzeugen/löschen: (mkdir, rmdir)

$ mkdir katalog...      # Leere Kataloge erzeugen.
$ rmdir katalog...      # Leere Kataloge löschen.

Kataloge samt Inhalt kann man mit rm -rf sehr radikal entfernen.


back | next | up | down | Inhalt | Uebungen | Complete | Kommentar


Created by unroff & hp-tools. © by Hans-Peter Bischof. All Rights Reserved (1997).

Last modified 03/July/97