|
|
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.
|
|
Last modified 03/July/97