find
SYNTAX
find [-H] [-L] [-P] [Verzeichnis...] [Ausdruck]
BESCHREIBUNG
Diese Handbuchseite beschreibt die GNU Version von find. GNU find
durchsucht eine oder mehrere Verzeichnishierarchien und bewertet dabei
den Ausdruck von links nach rechts entsprechend den Regeln der Pri-
orität (siehe Abschnitt OPERATOREN) bis das Ergebnis bekannt ist (die
linke Seite ist falsch für UND Operatoren, wahr für ODER Operatoren).
Anschließend führt find die Suche mit der nächsten Datei fort.
OPTIONEN
Die Optionen -H, -L und -P bestimmen den Umgang mit symbolischen Links.
Darauf folgende Kommandozeilenparamter müssen die Datei- oder Verzeich-
nisnamen sein, die untersucht werden sollen.
Das erste Argument, das mit einem -, einer Klammer (, ), einem Komma ,
oder einem Ausrufezeichen ! beginnt, wird als Anfang eines Ausdrucks
interpretiert, der bestimmt, wonach gesucht wird. Alle Argumente davor
werden als Verzeichnisnamen angesehen.
Wenn kein Verzeichnis angegeben ist, wird das aktuelle Verzeichnis
genommen. Wenn keine Aktion angegeben ist, wird die Aktion -print aus-
geführt (es wird stattdessen empfohlen -print0 zu verwenden).
-P Keinen symbolischen Links folgen. Dies ist das Standardverhal-
ten. Wenn find eine Datei untersucht oder Informationen über
diese ausgibt, und die Datei ein symbolischer Link ist, dann
werden die Informationen von dem symbolischen Link selbst ver-
wendet.
-L Symbolischen Links folgen. Wenn find eine Datei untersucht oder
Informationen über diese ausgibt, dann werden die Informationen
von der Datei verwendet, auf die der symbolische Link verweist
(es sei denn, der Link ist kaputt oder find nicht in der Lage
ist, die Datei zu untersuchen, auf die der Link zeigt). Die
Verwendung dieser Option impliziert die Option -noleaf. Wenn
Sie später die Option -P verwenden, wird -noleaf immer noch
Auswirkungen zeigen. Wenn -L aktiv ist und find einen symbolis-
chen Link zu einem Unterverzeichnis während seiner Suche findet,
wird das Unterverzeichnis durchsucht, auf das der symbolische
Link zeigt.
Wenn die Option in Kraft tritt, wird das Prädikat -type immer
auf den Typ der Datei angewendet, auf die ein symbolischer Link
zeigt, anstatt auf den Link selbst (es sei denn, der symbolische
Link ist kaputt). Die Verwendung von -L bewirkt, dass die
Prädikate -lname und -ilname immer logisch falsch zurückliefern.
-H Keinen symbolischen Links folgen, es sei denn die Parameter in
AUSDRÜCKE
Ein Ausdruck besteht aus Optionen (welche das allgemeine Verhalten der
Kommandos bestimmen und immer wahr zurückgeben), Tests (welche wahr
oder falsch zurückgeben) und Aktionen (welche wahr oder falsch
zurückgeben). Optionen, Tests und Aktionen werden über Operatoren
verknüpft. Wenn kein Operator explizit angeben ist wird der UND Opera-
tor -and verwendet. Wenn der Ausdruck keine andere Aktion als -prune
enthält, wird mit allen Dateien, für welche der Ausdruck wahr ergibt,
die Aktion -print durchgeführt.
OPTIONEN
Alle Optionen geben immer logisch wahr zurück. Mit der Ausnahme von
-follow und -daystart haben sie immer Auswirkungen und werden nicht
erst dann verarbeitet, wenn ihre Position im Ausdruck erreicht wird.
Daher sollten ist es für bessere Lesbarkeit besser, sie an den Anfang
des Ausdrucks zu stellen. Eine Warnung wird ausgegeben, wenn Sie das
nicht machen.
-daystart
mißt die Zeiten für die -amin, -atime, -cmin, -ctime, -mmin und
-mtime Eigenschaften vom Beginn des aktuellen Tages anstelle der
letzten 24 Stunden. Diese Option betrifft nur die Tests, die
weiter hinten in der Kommandozeile geschrieben sind.
-depth bearbeitet den Inhalt jedes Verzeichnisses vor dem Verzeichnis
selbst.
-follow
Veraltet. Verwenden Sie die Option -L stattdessen. Dereferen-
ziert symbolische Links. Impliziert -noleaf. Wenn die Option
-H oder -L nicht angegeben wird, ändert die Position von -follow
das Verhalten des Prädikats -newer. Alle Dateien, die als Argu-
mente von -newer aufgeszählt sind, werden dereferenziert, wenn
es sich bei ihnen um symbolische Links handelt. Das gleiche
gilt für -anewer und -cnewer. Genauso wird das Prädikat -type
immer auf den Typ der Datei angewendet, auf den der symbolische
Link zeigt und nicht auf den Link selbst. Die Verwendung von
-follow hat zur Folge, dass die Prädikate -lname und -ilname
immer logisch falsch zurückliefern.
-maxdepth Ebenen
steigt bis zu der gegebenen Zahl von Ebenen im Verzeichnisbaum
auf (in der Hierarchie ab); bei 0 Ebenen werden die Tests nur
auf die in der Kommandozeile übergebenen Dateien und Verzeich-
nisnamen angewendet
-mindepth Ebenen
steigt mindestens die gegebene Zahl von Ebenen im Verzeichnis-
baum auf (in der Hierarchie ab); bei einer Ebene werden die in
der Kommandozeile genannten Dateien und Verzeichnisnamen nicht
bearbeitet
-xdev durchsucht keine Verzeichnisse in anderen Dateisystemen (auf
anderen Partitionen)
Tests
Alle numerischen Argumente können auf drei Arten angegeben werden:
+ N steht für alle Zahlen größer als N
- N steht für alle Zahlen kleiner als N
N steht für genau N
Alle Tests werden auf die Dateien in den angegebenen Verzeichnissen
einzeln angewendet. Die Tests liefern einen Wahrheitswert von 0
(Wahr), wenn der Test erfolgreich war.
Die Tests auf die erweiterten Zeitmarken (Zugriff und Erstellung) wer-
den nur in solchen Verzeichnissen korrekt behandelt, die auf einem der
neuen Linuxdateisysteme angesiedelt sind (e2fs, xiafs, new minix). Auf
den anderen Dateisystemen wird nur das Datum der letzten Änderung
zuverlässig getestet. Das Ergebnis der anderen Tests hängt davon ab, ob
der letzte Zugriff bzw. die letzte Änderung so kurz zurückliegen, dass
die veränderte I-Node noch im Arbeitsspeicher (Cache) ist. Dann können
auch für die Dateien der alten Dateisysteme alle drei Zeitmarken unter-
schieden werden.
-amin N
auf die Datei ist vor N Minuten zugegriffen worden
-anewer Referenzdatei
auf die Datei ist vor weniger Zeit zugegriffen worden, als seit
der letzten Veränderung der Referenzdatei vergangen ist; im
Zusammenhang mit -follow tritt -anewer nur in Effekt, wenn -fol-
low vor -anewer in der Kommandozeile steht
-atime N
auf die Datei ist vor N*24 Stunden zugegriffen worden
-cmin N
der Status der Datei wurde vor N Minuten geändert
-cnewer Referenzdatei
der Status der Datei wurde vor weniger Zeit verändert, als seit
der letzten Veränderung der Referenzdatei vergangen ist; zusam-
men mit -follow tritt -cnewer nur in Effekt, wenn -follow vor
-cnewer in der Kommandozeile steht
-ctime N
der Dateistatus wurde vor N*24 Stunden geändert
-empty die reguläre Datei oder das Verzeichnis ist leer
-links N
die Datei hat N (harte) Links
-lname Muster
die Datei ist ein symbolischer Link auf eine Datei oder ein
Verzeichnis mit einem zum Muster passenden Namen
-mmin N
der Inhalt der Datei wurde vor N Minuten verändert
-mtime N
der Inhalt der Datei wurde vor IN*24 Stunden verändert
-name Muster
der Name der Datei passt zu dem Muster
-newer Referenzdatei
die Datei ist später verändert worden als die Referenzdatei;
zusammen mit -follow tritt -newer nur in Effekt, wenn -follow
vor -newer in der Kommandozeile steht
-nouser
die Datei gehört keinem im System eingetragenen Benutzer
-nogroup
die Datei gehört keiner im System angemeldeten Gruppe
-path Muster
der Pfadname der Datei passt zum Muster"
-perm Modus
die Zugriffsrechte auf die Datei entsprechen exakt dem Modus;
der Modus kann als Oktalzahl oder mit den bei chmod(1)
beschriebenen Kennungen beschrieben werden, die Kennungen werden
auf Modus 000bezogen
-perm -Modus
(mindestens) die Zugriffsrechte für den Modus sind gesetzt
-perm +Modus
die Zugriffsrechte entsprechen höchstens dem Modus (oder sind
weiter eingeschränkt)
-regex Muster
der Pfadname passt zu dem regulären Ausdruck Muster
"size N[{c,k}]"
die Datei belegt N Datenblöcke zu 512 Bytes, bzw. N Bytes und N
Kilobytes mit nachgestelltem c oder k
-true ist immer wahr
l symbolischer Link
s Socket
-uid N die Kennziffer des Eigentümers ist N
-used N
auf die Datei ist N Tage nach der letzten Änderung zugegriffen
worden
-user Name
die Datei gehört dem Anwender Name
-xtype C
das gleiche wie -type für alle Dateien, die keine symbolischen
Links sind; wenn die Datei ein symbolischer Link ist und die
Option -follow nicht gesetzt ist, wird die Datei, auf die der
Link zeigt, auf den Typ C geprüft; wenn die Option -follow
gesetzt ist, ist der Test wahr, wenn C = l ist
Aktionen
-exec Kommando;
führt das Kommando aus; die Aktion ist wahr, wenn das Kommando
einen Status von Null liefert; alle auf den Kommandonamen fol-
genden Argumente bis zu einem Semikolon ; werden als Komman-
dozeilenargumente für das Kommando interpretiert; das Semikolon
kann nicht weggelassen werden, und es muss durch mindestens ein
Whitespace von der letzten Option getrennt werden; die Konstruk-
tion {} wird durch den Pfadnamen der Datei ersetzt; die Klammern
und das Semikolon müssen in der Kommandozeile für find quotiert
werden, damit sie nicht von der Shell bearbeitet werden
-fprint Ausgabedatei
schreibt den Pfadnamen der getesteten Datei in die Ausgabedatei;
wenn die Ausgabedatei nicht existiert, wird sie erzeugt, sonst
wird sie erweitert; die Standardausgabe und die Standardfehler-
ausgabe werden als /dev/stdout und /dev/stderr angesprochen
-fprint0 Ausgabedatei
schreibt den Namen der getesteten Datei in die Ausgabedatei und
schließt die Ausgabe mit einem Nullbyte ab, wie -print0
-fprintf Ausgabedatei Format
schreibt den Namen der getesteten Datei in die Ausgabedatei und
benutzt dabei das Format mit Sonderzeichen wie bei printf
-ok Kommando;
wie -exec, vor der Ausführung des Kommandos wird aber noch eine
Bestätigung erwartet; nur eine Eingabe, die mit einem B oder
einem y beginnt, führt zur Ausführung des Kommandos
\a Alarmton
\b Rückschritt
\c Abbruch der Ausgabe
\f Seitenvorschub
\n Zeilenvorschub
\r Wagenrücklauf
\t horizontaler Tabulator
\v vertikaler Tabulator
\\ der Backslash selbst
ein Backspace gefolgt von irgendeinem anderen Zeichen wird als normales
Zeichen interpretiert und einfach ausgegeben
%% das Prozentzeichen selbst
%a die Zeit des letzten Zugriffs auf die Datei, in dem For-
mat der ctime Funktion
%A k die Zeit des letzten Zugriffs auf die Datei, in dem von k
bestimmte Format; k hat dabei das gleiche Format wie der
entsprechende Parameter der strftime Funktion in C:
@ Sekunden seit dem 1.1.1970 0 Uhr GMT
H Stunde (00 bis 23)
I Stunde (01 bis 12)
k Stunde (0 bis 23)
l Stunde (1 bis 12)
M Minute (00 bis 59)
p PM oder AM
r Zeit, 12 Stunden (hh:mm:ss: AM/PM)
S Sekunden (00 bis 61)
T Zeit, 24 Stunden (hh:mm:ss)
X Zeit (H:M:S)
D Datum (mm/dd/yy)
h das gleiche wie b
j der Tag im Jahr
m die Zahl des Monats
U die Nummer der Woche, Sonntag als erster Wochen-
tag
w die Zahl des Wochentags
W die Nummer der Woche, Montag als erster Wochentag
x Datum (mm/dd/yy)
y die letzten beiden Stellen der Jahreszahl
Y die Jahreszahl
%b die Dateigröße in 512 Byte Blöcken (aufgerundet)
%c das Datum der letzten Statusänderung im Format der C
ctime Funktion
%Ck das Datum der letzten Statusänderung im Format der BR
strftime " Funktion; Parameter wie oben"
%d die Höhe der Datei im Verzeichnisbaum; Null bedeutet,
dass die Datei Kommandozeilenargument ist
%f der Name der getesteten Datei, ohne Verzeichnisse
%g der Gruppenname der getesteten Datei oder die Kennzahl,
wenn die Gruppe nicht eingetragen ist
%G die Gruppenkennzahl
%h die Verzeichnisnamen des Pfadnamen der getesteten Datei
%H das Kommandozeilenargument (Test), mit dem die Datei
gefunden wurde
%i die Nummer der Inode der getesteten Datei
%k die aufgerundete Größe der getesteten Datei in Kilobytes
%l das Objekt, auf die ein symbolischer Link zeigt; leer,
wenn die getestete Datei kein symbolischer Link ist
oben)
%u der Name des Eigentümers der getesteten Datei oder die
Kennzahl, wenn der Benutzer nicht eingetragen ist
%U die Benutzerkennzahl des Eigentümers der getesteten Datei
-prune wahr, wenn die Option -depth nicht angegeben ist; sonst falsch.
Wenn die Datei ein Verzeichnis ist, wird nicht in dieses hin-
abgestiegen.
falsch, wenn die Option -depth angegeben ist, hat keine
Auswirkungen.
-ls zeigt das Verzeichnis in dem die getestete Datei gefunden wurde
mit ls -dils an
Operatoren
Die Optionen, Tests und Aktionen können mit Operatoren verknüpft wer-
den. Die Bearbeitung erfolgt prinzipiell von links nach rechts.
( Ausdruck )
die Klammern fassen den Ausdruck zu einer Operation zusammen
! Ausdruck
ist wahr, wenn der Ausdruck falsch ist
-not Ausdruck
ist ebenfalls wahr, wenn der Ausdruck falsch ist
Ausdruck1 Ausdruck2
UND Verknüpfung; wenn Ausdruck1 wahr ist, wird Ausdruck2 bew-
ertet (ausgeführt)
Ausdruck1 -a Ausdruck2
auch eine UND Verknüpfung
Ausdruck1 -and Ausdruck2
auch eine UND Verknüpfung
Ausdruck1 -o Ausdruck2
ODER Verknüpfung; Ausdruck2 wird bewertet (ausgeführt), wenn
Ausdruck1 falsch ist
Ausdruck1 -or Ausdruck2
auch eine ODER Verknüpfung
Ausdruck1 , Ausdruck2
Liste; beide Ausdrücke werden immer bewertet (ausgeführt); der
Wahrheitswert des gesamten Ausdrucks entspricht dem von Aus-
druck2
das LunetIX Linuxhandbuch, locate(1), locatedb(5), updatedb(1),
xargs(1), fnmatch(3), regex(7), stat(2), lstat(2), ls(1), printf(3),
strftime(3), ctime(3), Finding Files (on-line im Info-Dokument oder
gedruckt),
HISTORY
Seit findutils-4.2.2 stimmen Shell-Metazeichen ('*'. '?' oder '[]' zum
Beispiel), die in Muster für Dateinamen verwendet werden, einen führen-
den '.', denn die Interpretation 126 von IEEE POSIX erfordert dieses.
AUTOREN
Eric Decker, David MacKenzie, Jay Plett und Tim Wood
LunetIX Linuxhandbuch 1. Juli 1993 FIND(1)
Man(1) output converted for
Linux installieren!