Provided by:
manpages-de_0.4-9_all 
BEZEICHNUNG
find - sucht nach bestimmten Dateien
SYNTAX
find [Verzeichnis] [-Option...] [-Test...] [-Aktion...]
BESCHREIBUNG
find durchsucht eine oder mehrere Verzeichnishierarchien nach Dateien
mit bestimmten Eigenschaften, und führt damit bestimmte Aktionen aus.
Die Eigenschaften können durch Tests bestimmt werden.
Optionen, Tests und Aktionen können mit Operatoren zusammengefaßt
werden. find bewertet für jede Datei in den Verzeichnishierarchien die
Optionen, Tests und Aktionen von links nach rechts, bis ein falscher
Wahrheitswert auftaucht oder die Kommandozeilenargumente zu Ende sind.
Das erste Argument, das mit einem -, einer Klammer (, ), einem Komma ,
oder einem Ausrufezeichen ! beginnt, wird als Anfang einer Option oder
Test interpretiert. Alle Argumente davor werden als Verzeichnisnamen
interpretiert.
Wenn kein Verzeichnis angegeben ist, wird das aktuelle Verzeichnis
genommen. Wenn keine Aktion angegeben ist, wird die Aktion -print
ausgeführt.
Der Status von find ist Null, wenn alle Aktionen erfolgreich waren, im
Fehlerfall ist der Status größer als Null.
OPTIONEN
Die Optionen bestimmen das allgemeine Verhalten des Kommandos, und
beziehen sich nicht auf spezielle Dateien. Die Optionen sind immer
wahr.
-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
-depth bearbeitet den Inhalt jedes Verzeichnisses vor dem Verzeichnis
selbst
-follow
folgt den symbolischen Links; diese Option schließt -noleaf mit
ein
-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
Verzeichnisnamen angewendet
-mindepth Ebenen
steigt mindestens die gegebene Zahl von Ebenen im
Verzeichnisbaum auf (in der Hierarchie ab); bei einer Ebene
werden die in der Kommandozeile genannten Dateien und
Verzeichnisnamen nicht bearbeitet
-noleaf
erzwingt die Bearbeitung aller Verzeichniseinträge;
normalerweise kann davon ausgegangen werden, daß jedes
Linuxverzeichnis wenigstens zwei (harte) Links enthält: das
Verzeichnis . ist ein Link auf das Verzeichnis selbst, und
jedes Unterverzeichnis enthält den Eintrag .. als Link auf das
Oberverzeichnis; wenn find bei der Untersuchung eines
Verzeichnisses zwei Unterverzeichnisse weniger untersucht hat,
als das Verzeichnis Links zählt, kann deshalb normalerweise die
weitere Suche beendet werden
-version
gibt die Versionsnummer auf die Standardfehlerausgabe
-xdev durchsucht keine Verzeichnisse in anderen Dateisystemem (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)
werden 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, daß
die veränderte I-Node noch im Arbeitsspeicher (Cache) ist. Dann können
auch für die Dateien der alten Dateissysteme alle drei Zeitmarken
unterschieden 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
-follow 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;
zusammen 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
-false ist immer falsch
-fstype Typ
die Datei ist in einem Dateisystem vom angegebenen Typ; unter
anderem werden minix, msdos, ext und proc erkannt
-gid N die Datei gehört der Gruppe mit der Kennzahl N
-group Name
die Datei gehört der Gruppe Name
-inum IN
die Datei belegt die Inode mit der Nummer N
-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 N*24 Stunden verändert
-name Muster
der Name der Datei paßt 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 paßt zum Muster"
-perm Modus
die Zugriffsrechte auf die Datei entprechen 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 paßt zu dem regulären Ausdruck Muster
-size N[bckw]
die Datei belegt N Datenblöcke zu 512 Bytes, bzw. N Bytes, N
2-Byte-Wörtern und N Kilobytes mit nachgestelltem c, w oder k.
Nachgestelltes b entspricht der Standardvorgabe von 512-Byte-
Blöcken.
-true ist immer wahr
-type C
die Datei ist vom Typ C; folgende Typen werden unterschieden:
b gepufferte Gerätedatei für ein blockorientiertes Gerät
c ungepufferte Gerätedatei für ein zeichenorientiertes
Gerät
d Verzeichnis
p benannte Pipeline (FiFo)
f normale Datei
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
folgenden Argumente bis zu einem Semikolon ; werden als
Kommandozeilenargumente für das Kommando interpretiert; das
Semikolon kann nicht weggelassen werden, und es muß durch
mindestens ein Whitespace von der letzen Option getrennt werden;
die Konstruktion {} 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
Standardfehlerausgabe 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
-print gibt den vollständigen Pfadnamen der getesteten Datei auf die
Standardausgabe
-print0
gibt den Pfadnamen der getesteten Datei, von einem Nullbyte
abgeschlossen, auf die Standardausgabe; auf diese Weise können
auch Pfadnamen korrekt weiterverarbeitet werden, die ein
Zeilenende enthalten
-printf Format
gibt für die getestete Datei die Zeichenkette Format auf der
Standardausgabe aus; Format kann verschiedene Sonderzeichen und
Platzhalter enthalten, die von find bearbeitet werden:
\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
Format 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
entprechende 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)
Z Zeitzone, oder nichts
a abgekürzter Wochentag
A ausgeschriebener Wochentag
b abgekürzter Monatsname
B ausgeschriebener Monatsname
c Datum und Zeit
d Tag im Monat
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
Wochentag
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, daß
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
%m die Zugriffsrechte als Oktalzahl
%n die Anzahl der harten Links auf die getestete Datei
%p der Pfadname der Datei
%P der Pfadname und das Kommandozeilenargument (Test), mit
dem die Datei gefunden wurde
%s die Größe der getesteten Datei in Bytes
%t die Zeit der letzten Änderung, im ctime Format
%Tk die Zeit der letzten Änderung, im strftime Format (siehe
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 gesetzt ist; sonst falsch
-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
werden. 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
bewertet (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
Ausdruck2
SIEHE AUCH
das LunetIX Linuxhandbuch
AUTOR
Eric Decker, David MacKenzie, Jay Plett und Tim Wood