Provided by: manpages-de_4.15.0-9_all bug

BEZEICHNUNG

       find - in einer Verzeichnishierarchie nach Dateien suchen

ÜBERSICHT

       find [-H] [-L] [-P] [-D Fehlersuchoptionen] [-OStufe] [Startpunkt …] [Ausdruck]

BESCHREIBUNG

       Diese   Handbuchseite  beschreibt  die  GNU-Version  von  find.  GNU-find  durchsucht  die
       Verzeichnisbäume, die ihren Ursprung bei den angegebenen Dateinamen haben und wertet dabei
       den  Ausdruck  von  links  nach  rechts  entsprechend  der  Operatorenrangfolge aus (siehe
       Abschnitt OPERATOREN), bis das Ergebnis ermittelt ist (die  linke  Seite  falsch  ist  für
       UND-Operatoren  und  wahr  für  ODER-Operatoren). Anschließend fährt find mit der nächsten
       Datei fort. Wird kein Startpunkt angegeben, wird ».« angenommen.

       Falls Sie find in einem Umfeld benutzen, in dem Sicherheit wichtig ist (zum  Beispiel,  um
       Verzeichnisse  zu  durchsuchen,  die für andere Anwender schreibbar sind), sollten Sie das
       Kapitel »Security Considerations« der Findutils-Dokumentation  lesen,  die  Finding  Files
       heißt  und den Findutils beigefügt ist. Dieses Dokument enthält außerdem mehr Einzelheiten
       und  Erörterungen  als  diese  Handbuchseite,  so  dass  Sie  es  als   eine   nützlichere
       Informationsquelle empfinden könnten.

OPTIONEN

       Die  Optionen  -H,  -L  und  -P steuern den Umgang mit symbolischen Links. Darauf folgende
       Befehlszeilenparameter  werden  als  zu   untersuchende   Datei-   oder   Verzeichnisnamen
       betrachtet, bis ein Parameter mit einem »-« beginnt oder ein »(« oder »!«, ist. Solche und
       alle folgenden Parameter werden als Ausdruck interpretiert, der beschreibt, wonach gesucht
       werden  soll. Wenn kein Pfad angegeben wurde, wird das aktuelle Verzeichnis genommen. Wenn
       kein Ausdruck angegeben ist, wird der Ausdruck -print benutzt (aber Sie sollten vermutlich
       sowieso in Betracht ziehen, stattdessen -print0 zu verwenden).

       Dieses  Handbuch  spricht  von  »Optionen«  innerhalb  einer  Liste  von Ausdrücken. Diese
       Optionen steuern das Verhalten von find, werden aber direkt  nach  dem  letzten  Pfadnamen
       angegeben.  Die  fünf  »echten« Optionen -L, -P, -D und -O müssen wenn dann vor dem ersten
       Pfadnamen erscheinen. Außerdem könnte ein doppeltes Minuszeichen  --  theoretisch  benutzt
       werden,  um  zu  signalisieren, dass die verbleibenden Argumente keine Optionen sind, aber
       das funktioniert nicht wirklich, da find das Ende der folgenden  Pfadargumente  ermittelt:
       Es  liest  bis  zu  einem  Ausdrucksargument  (das  auch  mit  »-« beginnt). Falls nun ein
       Pfadargument mit einem  »-«  beginnen  würde,  dann  würde  find  dieses  stattdessen  als
       Ausdrucksargument  auffassen.  Um  sicher  zu  stellen,  dass  alle Startpunkte als solche
       aufgefasst werden, und insbesondere um zu verhindern,  dass  durch  die  aufrufende  Shell
       expandierte   Platzhaltermuster  fälschlicherweise  als  Ausdrucksargumente  interpretiert
       werden, ist es daher im Allgemeinen sicherer,  Platzhaltern  oder  fragwürdigen  Pfadnamen
       entweder  »./«  voranzustellen oder absolute Pfadnamen zu verwenden, die mit »/« beginnen.
       Alternativ ist es generell sicher, die  (allerdings  unportable)  GNU-Option  -files0-from
       hinzuzufügen, mit der Sie beliebige Startpunkte an find übergeben können.

       -P     keinen symbolischen Links folgen. Dies ist das Standardverhalten. Wenn find Dateien
              untersucht oder Informationen über diese ausgibt und  die  Datei  ein  symbolischer
              Link  ist,  dann  müssen  die Informationen des symbolischen Links selbst verwendet
              werden.

       -L     symbolischen Links folgen. Wenn find eine Datei untersucht oder Informationen  über
              diese  ausgibt,  dann  müssen die Informationen der Datei verwendet werden, auf die
              der symbolische Link verweist, nicht  die  des  Links  selbst  (es  sei  denn,  der
              symbolische  Link ist kaputt oder find nicht in der Lage, 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 haben.  Wenn  -L  aktiv  ist  und  find  während  seiner  Suche  einen
              symbolischen  Link  zu  einem Unterverzeichnis vorfindet, wird das Unterverzeichnis
              durchsucht, auf das der symbolische Link zeigt.

              Wenn die Option -L in Kraft ist, 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).  Aktionen  die  symbolische  Links
              zerstören, während find ausgeführt wird (zum Beispiel -delete), können verwirrendes
              Verhalten verursachen. Die Verwendung von -L bewirkt, dass die Prädikate -lname und
              -ilname immer falsch zurückliefern.

       -H     keinen  symbolischen  Links  folgen, es sei denn, die Parameter in der Befehlszeile
              werden ausgewertet. Wenn find Dateien  untersucht  oder  Informationen  über  diese
              ausgibt,  müssen die verwendeten Informationen vom symbolischen Link selbst benutzt
              werden. Die einzige Ausnahme dieses Verhaltens ist, wenn eine in  der  Befehlszeile
              angegebene  Datei  ein  symbolischer  Link ist und dem Link gefolgt werden kann. In
              dieser  Situation  werden  die  Informationen  der  Datei  genommen,  auf  die  der
              symbolische  Link  verweist  (das  bedeutet,  dass  dem  Link  gefolgt  wird).  Die
              Informationen über den Link selbst dienen als Rückgriff  für  den  Fall,  dass  die
              Datei, auf die der symbolische Link verweist, nicht untersucht werden kann. Wenn -H
              in Kraft ist und einer der Pfade, die auf der Befehlszeile  angegeben  wurden,  ein
              symbolischer   Link   zu   einem   Verzeichnis   ist,  werden  die  Inhalte  dieses
              Verzeichnisses untersucht (was natürlich -maxdepth 0 verhindern würde).

       Falls mehr als eine der Optionen -H, -L und -P angegeben  ist,  setzt  jedes  die  anderen
       außer  Kraft;  das letzte, das auf der Befehlszeile erscheint, gilt. Die Option -P ist die
       Voreinstellung. Wenn weder -H noch -L angegeben wurden, ist es, als  wäre  dies  angegeben
       worden.

       GNU-find  fragt  oft  Datei-Informationen während der Verarbeitung der Befehlszeile selbst
       ab, bevor irgendeine Suche begonnen hat.  Diese  Optionen  beeinflussen  auch,  wie  diese
       Argumente  verarbeitet  werden.  Insbesondere  gibt  es  einige Tests, die Dateien auf der
       Befehlszeile mit einer aktuell betrachteten Datei vergleichen.  Die  Datei,  die  auf  der
       Befehlszeile angegeben wird, wird auf jeden Fall untersucht und einige Ihrer Eigenschaften
       werden gespeichert. Falls die genannte Datei ein symbolischer Link ist und die  Option  -P
       in  Kraft  ist  (oder falls weder -H noch -L angegeben wurden), wird die für den Vergleich
       benutzte Information aus den Eigenschaften des symbolischen Links  genommen.  Anderenfalls
       wird  sie  aus den Eigenschaften der Datei genommen, auf die der Link verweist. Falls find
       dem Link nicht folgen kann (zum Beispiel, weil es nicht über ausreichende  Rechte  verfügt
       oder  der  Link  auf eine nicht existierende Datei verweist), werden die Eigenschaften des
       Links selbst benutzt.

       Wenn die Optionen -H oder -L in Kraft sind, wird jeder symbolische Link als  Argument  von
       -newer  dereferenziert  und  der  Zeitstempel  wird  von  der  Datei genommen, auf die der
       symbolische Link verweist. Die  gleichen  Erwägungen  gelten  für  -newerXY,  -anewer  und
       -cnewer.

       Die  Option  -follow  hat  ähnliche  Auswirkungen wie -L, obwohl sie an dem Punkt in Kraft
       tritt, an dem sie erscheint (sprich, wenn -L nicht benutzt wird, aber -follow, werden alle
       symbolischen   Links,   die   nach   -follow   auf  der  Befehlszeile  erscheinen,  vorher
       dereferenziert).

       -D Debug-Optionen
              Diagnoseinformationen  ausgeben;  dies  kann  hilfreich  sein,   um   Probleme   zu
              diagnostizieren,  warum  find  nicht  das  tut,  was  Sie  möchten.  Die  Liste der
              Debug-Optionen sollte durch Kommas getrennt sein. Kompatibilität der Debug-Optionen
              ist  zwischen den unterschiedlichen Versionen der Findutils nicht gewährleistet. Um
              eine vollständige Liste der gültigen Optionen zu erhalten, lesen  Sie  die  Ausgabe
              von find -D help. Gültige Debug-Optionen sind unter anderem:

              exec   zeigt  Diagnostikinformationen  mit Bezug zu -exec, -execdir, -ok und -okdir
                     an.

              opt    gibt Diagnoseinformationen bezüglich der Optimierung des Ausdrucksbaums aus;
                     siehe die Option -O.

              rates  gibt   eine   Zusammenfassung  aus,  die  angibt,  wie  oft  jedes  Prädikat
                     erfolgreich war oder fehlschlug.

              search durchläuft den Verzeichnisbaum ausführlich.

              stat   meldet, wenn Dateien  mit  den  Systemaufrufen  stat  und  lstat  untersucht
                     werden.   Das   Programm  find  versucht,  die  Anzahl  solcher  Aufrufe  zu
                     minimieren.

              tree   zeigt den Ausdrucksbaum in seiner originalen und optimierten Form.

              all    aktiviert alle anderen Debug-Optionen (außer help).

              help   erklärt die Debugging-Optionen.

       -OStufe
              aktiviert Abfragenoptimierung. Das Programm  find  ordnet  Tests  neu  an,  um  die
              Ausführung  zu  beschleunigen,  ohne  das  Gesamtergebnis  zu  ändern;  das  heißt,
              Prädikate mit Seiteneffekten werden im Gegensatz zu anderen nicht  neu  angeordnet.
              Die  Optimierungen  die  auf  jeder Optimierungsstufe durchgeführt werden, sind wie
              folgt.

              0      entspricht der Optimierungsstufe 1

              1      Dies ist die Standardoptimierungsstufe  und  entspricht  dem  traditionellen
                     Verhalten.  Ausdrücke  werden neu angeordnet, so dass Tests, die nur auf den
                     Namen  der  Dateien  basieren  (zum  Beispiel  -name  und   -regex)   zuerst
                     durchgeführt werden.

              2      Irgendwelche  -type-  oder -xtype-Tests werden nach allen Tests, die nur auf
                     Dateinamen basieren,  aber  vor  Tests,  die  Informationen  aus  dem  Inode
                     benötigen,  durchgeführt.  Auf  vielen  modernen  Versionen  von Unix werden
                     Dateitypen durch readdir() zurückgegeben  und  daher  sind  diese  Prädikate
                     schneller auszuwerten als Prädikate, die zuerst stat für die Datei ausführen
                     müssen. Wenn Sie beim Start von find das Prädikat FOO für -fstype  verwenden
                     und   einen   unbekannten   Dateisystemtyp   FOO   angeben  (in  »/etc/mtab«
                     aufgeführt), entspricht dies dem Prädikat -false.

              3      Auf dieser Optimierungsstufe ist der vollständig  kostenbasierte  Optimierer
                     aktiviert.  Die  Reihenfolge der Tests wird geändert, so dass günstige (d.h.
                     schnelle) Tests zuerst und die teureren später  durchgeführt  werden,  falls
                     nötig.  Innerhalb  jeder  Kostenebene  werden  Prädikate  früher oder später
                     ausgewertet, je nachdem, ob sie wahrscheinlich erfolgreich sein werden  oder
                     nicht.  Für -o werden Prädikate, die wahrscheinlich erfolgreich sind, früher
                     ausgewertet und für -a werden Prädikate,  die  wahrscheinlich  fehlschlagen,
                     früher ausgewertet.

              Der  kostenbasierte Optimierer hat eine feste Vorstellung davon, wie wahrscheinlich
              ein gegebener Test erfolgreich ist. In einigen Fällen trägt die  Wahrscheinlichkeit
              einer  bestimmten  Eigenheit  des  Tests  Rechnung  (zum  Beispiel wird von -type f
              angenommen,  dass  es  eher  erfolgreich  ist,  als  -type c).  Der  kostenbasierte
              Optimierer  wird  derzeit untersucht. Falls er nicht wirklich die Leistung von find
              verbessert, wird er wieder entfernt. Im umgekehrten Fall werden Optimierungen,  die
              beweisen,  dass  sie  zuverlässig,  robust  und effektiv sind, im Lauf der Zeit auf
              niedrigeren   Optimierungsstufen    aktiviert.    Das    Standardverhalten    (d.h.
              Optimierungsstufe   1)   wird  jedoch  nicht  in  der  4.3.x-Veröffentlichungsserie
              geändert. Die  Test-Suite  Findutils  führt  all  die  Tests  auf  find  auf  jeder
              Optimierungsstufe aus und stellt sicher, dass das Ergebnis das Gleiche ist.

AUSDRUCK

       Der  Teil  der Befehlszeile nach der Liste der Startpunkte ist der Ausdruck. Dies ist eine
       Abfragespezifikation, die die Suche nach übereinstimmenden Dateien und den Umgang mit  den
       gefundenen Dateien beschreibt. Ein Ausdruck ist eine Abfolge von:

       Tests  Tests  geben »wahr« oder »falsch« zurück, normalerweise auf Basis einer Eigenschaft
              einer zu berücksichtigenden Datei.  Der  Test  -empty  beispielsweise  gibt  »wahr«
              zurück, wenn die Datei leer ist.

       Aktionen
              Aktionen  haben  Folgeeffekte  (zum  Beispiel Meldungen in der Standardausgabe) und
              geben  entweder  »wahr«  oder  »falsch«  zurück,  abhängig  davon,  ob  die  Aktion
              erfolgreich  war  oder  nicht.  Die Aktion -print beispielsweise gibt den Namen der
              aktuellen Datei in der Standardausgabe aus.

       Globale Optionen
              Globale Optionen beeinflussen die Wirkung der Tests und Aktionen, die als Teil  der
              Befehlszeile  angegeben  werden.  Globale  Optionen  geben stets »wahr« zurück. Die
              Option -depth beispielsweise durchsucht das Dateisystem in der angegebenen Tiefe.

       Positionsoptionen
              Positionsoptionen beeinflussen nur Tests, die darauf folgen.  Positionale  Optionen
              geben stets »wahr« zurück. Die Option -regextype beispielsweise ist positional. Sie
              gibt den »Dialekt« der regulären Ausdrücke  an,  die  danach  in  der  Befehlszeile
              angegeben werden.

       Operatoren
              Operatoren  verbinden  die anderen Elemente innerhalb des Ausdrucks. Beispielsweise
              stellen -o ein logisches ODER und -a ein logisches UND  dar.  Fehlt  ein  Operator,
              wird -a angenommen.

       Die  Aktion  -print  wird  auf  allen  Dateien,  für  die  der  gesamte Ausdruck zutrifft,
       durchgeführt, außer sie enthält eine von -prune oder -quit abweichende  Aktion.  Aktionen,
       die  die  Vorgabe  -print  blockieren  sind  -delete,  -exec, -execdir, -ok, -okdir, -fls,
       -fprint, -fprintf, -ls, -print und -printf.

       Die Aktion -delete wirkt auch wie eine Option (da sie -depth impliziert).

   POSITIONSOPTIONEN
       Positionsoptionen geben stets »wahr« zurück. Sie beeinflussen nur Tests, die danach in der
       Befehlszeile aufgeführt werden.

       -daystart
              misst  Zeiten  (für  -amin, -atime, -cmin, -ctime, -mmin und -mtime) vom Beginn des
              aktuellen Tages anstelle der letzten 24 Stunden. Diese Option beeinflusst  nur  die
              Tests, die weiter hinten in der Befehlszeile erscheinen.

       -follow
              missbilligt;  verwenden  Sie  stattdessen die Option -L; dereferenziert symbolische
              Links; impliziert -noleaf. Die Option -follow beeinflusst nur jene Tests, die  nach
              ihr  auf  der  Befehlszeile  erscheinen. Wenn die Option -H oder -L nicht angegeben
              wird, ändert die Position von -follow das  Verhalten  des  Prädikats  -newer.  Alle
              Dateien,  die  als  Argumente  von -newer aufgezählt werden, werden dereferenziert,
              wenn es sich bei ihnen um symbolische Links handelt. Das gilt auch für -anewer  und
              -cnewer.  Ähnlich  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 falsch
              zurückliefern.

       -regextype Typ
              Ändert die Syntax regulärer Ausdrücke, die von -regex- und -iregex-Tests verstanden
              werden,  die  später  auf  der Befehlszeile auftreten. Die bekannten Ausdruckstypen
              können Sie mit -regextype help anzeigen  lassen.  Das  Texinfo-Handbuch  (Abschnitt
              SIEHE AUCH) erklärt die Bedeutung verschiedener Typen regulärer Ausdrücke und deren
              Unterschiede.

       -warn, -nowarn
              schaltet Warnungen ein oder aus. Diese Warnungen betreffen nur  die  Benutzung  der
              Befehlszeile, nicht für irgendwelche Bedingungen, auf die find beim Durchsuchen von
              Verzeichnissen stoßen könnte. Das Standardverhalten  entspricht  -warn,  falls  die
              Standardeingabe  ein  Terminal  ist  und andernfalls -nowarn. Wenn eine Warnmeldung
              relativ zur Befehlsausführung erzeugt wird, dann  wird  der  Exit-Status  von  find
              davon  nicht  beeinflusst.  Ist  die  Umgebungsvariable POSIXLY_CORRECT gesetzt und
              -warn wird ebenfalls verwendet, dann  kann  nicht  exakt  bestimmt  werden,  welche
              Warnungen aktiv sind, falls Warnmeldungen auftreten.

   GLOBALE OPTIONEN
       Globale  Optionen geben stets »wahr« zurück. Sie wirken sich auch auf Tests aus, die davor
       in der Befehlszeile stehen. Um Verwirrung vorzubeugen, sollten  globale  Optionen  in  der
       Befehlszeile  nach  der  Liste  der Startpunkte angegeben werden, vor dem ersten Test, der
       ersten Positionsoption oder der ersten Aktion. Wenn  Sie  eine  globale  Option  an  einer
       anderen Stelle angeben, gibt find eine Warnung aus, dass dies verwirrend sein könnte.

       Die  globalen Optionen erscheinen nach der Liste der Startpunkte. Daher sind sie nicht von
       der gleichen Art wie beispielsweise die Option -L.

       -d     ein Synonym für -depth, für die Kompatibilität mit FreeBSD,  NetBSD,  MacOS  X  und
              OpenBSD.

       -depth bearbeitet  den  Inhalt jedes Verzeichnisses vor dem Verzeichnis selbst. Die Aktion
              -delete impliziert ebenfalls -depth.

       -files0-from Datei
              liest die Startpunkte aus der angegebenen Datei statt  aus  der  Befehlszeile.  Mit
              dieser  Option  können  Sie  eine  beliebige Anzahl von Startpunkten sicher an find
              übergeben; sie umgehen damit  die  bekannten  Einschränkungen  beim  Übergeben  von
              Startpunkten   in  der  Befehlszeile,  nämlich  die  Beschränkung  der  Anzahl  der
              Dateinamen und die Möglichkeit der Verwechslung von Datei- und Optionsnamen.

              Mit  dieser  Option  ist  es  nicht  möglich,  außerdem  noch  Dateinamen  in   der
              Befehlszeile zu übergeben. Beides gleichzeitig ist daher nicht erlaubt.

              Das  Datei-Argument  ist zwingend erforderlich. Sie können -files0-from - zum Lesen
              der Liste der Startpunkte aus dem Datenstrom der Standardeingabe und beispielsweise
              einer  Pipe  verwenden.  In  diesem  Fall  sind  die  Aktionen -ok und -okdir nicht
              zulässig, da sie mit dem Lesen aus der Standardeingabe kollidieren würden, wo  eine
              Bestätigung seitens des Benutzers nicht möglich wäre.

              Die  Startpunkte  in  der angegebenen Datei müssen durch ASCII-NUL-Zeichen getrennt
              werden. Zwei aufeinanderfolgende NUL-Zeichen,  beispielsweise  ein  Startpunkt  mit
              einem  Dateinamen  der  Länge  Null, sind nicht erlaubt. Dies würde später zu einem
              Fehler mit einem von Null verschiedenen Exit-Code führen.

              Falls die angegebene Datei leer ist, verarbeitet  find  keinerlei  Startpunkte  und
              beendet sich daher unmittelbar nach dem Auswerten der Programmargumente. Dies steht
              im Gegensatz zum  Standardaufruf,  bei  dem  find  ohne  übergebenes  Pfad-Argument
              annimmt, dass das aktuelle Verzeichnis der Startpunkt ist.

              Die  Verarbeitung  der  Startpunkte  geschieht  ansonsten  wie  üblich,  das  heißt
              beispielsweise,  dass  find  in  Unterverzeichnisse  absteigt,  sofern   es   nicht
              anderweitig  daran  gehindert  wird.  Um  lediglich  die Startpunkte verarbeiten zu
              lassen, können Sie zusätzlich -maxdepth 0 übergeben.

              Weitere Hinweise: Falls eine Datei in der Eingabedatei mehrmals aufgeführt ist, ist
              nicht  definiert,  ob  diese  tatsächlich mehrmals ausgewertet wird. Auch wenn sich
              eine Datei  während  der  Ausführung  von  find  ändert,  ist  das  Ergebnis  nicht
              definiert.   Letztendlich   betrifft   das  auch  die  Suchposition  innerhalb  der
              angegebenen Datei, sei es mit  -quit  oder  auf  andere  Weise.  »Nicht  definiert«
              bedeutet  hierbei,  dass  es funktionieren kann, aber nicht muss und möglicherweise
              ein bestimmtes Ergebnis liefert, was aber wiederum  auf  verschiedenen  Plattformen
              nicht  zwangsläufig  gleich sein muss und auch zwischen verschiedenen Versionen der
              findutils variieren kann.

       -help, --help
              gibt eine Zusammenfassung der Verwendung von find aus und wird beendet

       -ignore_readdir_race
              Normalerweise wird find eine Fehlermeldung ausgeben, wenn das  Ausführen  von  Stat
              für  eine  Datei  fehlschlägt. Falls Sie diese Option angeben und eine Datei in der
              Zeit zwischen dem Lesen des Namens im Verzeichnis durch find und der Zeit  gelöscht
              wurde,  in  der  Stat  für  die  Datei  ausgeführt  wird,  wird keine Fehlermeldung
              ausgegeben. Dies gilt auch für Dateien  und  Verzeichnisse,  deren  Namen  auf  der
              Befehlszeile  angegeben  wurden.  Diese  Option  tritt  dann  in  Kraft,  wenn  die
              Befehlszeile gelesen wird, was bedeutet, dass Sie nicht einen Teil des  Dateisystem
              durchsuchen  können, bei dem diese Option eingeschaltet ist und einen Teil, bei dem
              diese Option ausgeschaltet ist (falls Sie dies tun müssen, werden  Sie  stattdessen
              zwei find-Befehle absetzen müssen, einen mit und einen ohne der Option.

              Desweiteren wird find mit der Option -ignore_readdir_race Fehler der Aktion -delete
              ignorieren, falls die Datei verschwunden ist, seit  das  Elternverzeichnis  gelesen
              wurde:  es  wird  keine  Fehlerdiagnosen  ausgeben und der Rückkehr-Code der Aktion
              -delete wird wahr sein.

       -maxdepth Ebenen
              steigt höchstens Ebenen (eine nicht negative Ganzzahl)  Ebenen  im  Verzeichnisbaum
              unterhalb  der Startpunkte hinab. -maxdepth 0 bedeutet, dass die Tests und Aktionen
              nur auf die Startpunkte angewendet werden.

       -mindepth Ebenen
              keine Tests oder Aktionen auf  Ebenen  kleiner  als  Ebenen  (eine  nicht  negative
              Ganzzahl)   anwenden.   -mindepth 1   bedeutet,  dass  alle  Dateien  mit  Ausnahme
              Startpunkte selbst verarbeitet werden.

       -mount keine Verzeichnisse auf anderen Dateisystemen hinabsteigen. Ein  alternativer  Name
              für -xdev aus Kompatibilitätsgründen mit anderen Versionen von find.

       -noignore_readdir_race
              den Effekt -ignore_readdir_race ausschalten

       -noleaf
              nicht  optimieren  mit  der  Annahme,  dass  Verzeichnisse  zwei Unterverzeichnisse
              weniger enthalten, als ihre Anzahl harter Links. Diese Option wird  benötigt,  wenn
              Dateisysteme    durchsucht    werden,    die    nicht    den    Konventionen    von
              Unix-Verzeichnis-Links    folgen,    wie    CD-ROM-,    MS-DOS-Dateisysteme    oder
              AFS-Datenträgereinhängepunkte.     Jedes    Verzeichnis    auf    einem    normalen
              Unix-Dateisystem  hat  mindestens  zwei  harte  Links:  seinen  Namen  und   seinen
              ».«-Eintrag.  Zusätzlich  haben  seine Unterverzeichnisse (falls vorhanden) jeweils
              einen »..«-Eintrag, der auf dieses Verzeichnis verweist. Wenn find ein  Verzeichnis
              untersucht,   weiß   es,  nachdem  es  zwei  Unterverzeichnissen  weniger  als  der
              Links-Anzahl des Verzeichisses  begegnet  ist,  dass  der  Rest  der  Einträge  des
              Verzeichnisses keine Verzeichnisse sind (Blätter im Verzeichnisbaum). Falls nur die
              Namen der Dateien untersucht werden müssen, gibt  es  keinen  Grund  Stat  für  sie
              auszuführen; dies führt zu einer spürbaren Erhöhung der Suchgeschwindigkeit.

       -version, --version
              gibt die Versionsnummer von find aus und wird beendet

       -xdev  keine Verzeichnisse auf anderen Dateisystemen hinabsteigen

   TESTS
       Einige  Tests,  zum  Beispiel  -newerXY  und  -samefile erlauben den Vergleich der aktuell
       untersuchten Datei und irgendwelchen Referenzdateien, die auf der  Befehlszeile  angegeben
       wurden.  Wenn  diese Tests benutzt werden, wird die Interpretation der Referenzdatei durch
       die Optionen -H, -L, -P und jedem vorhergehenden  -follow  festgelegt,  die  Referenzdatei
       wird  nur  einmal  zu  dem Zeitpunkt untersucht, an dem die Befehlszeile ausgewertet wird.
       Falls die Referenzdatei nicht untersucht werden kann (weil zum Beispiel  der  Systemaufruf
       stat(2)  dafür  fehlschlägt),  wird eine Fehlermeldung ausgegeben und find endet mit einem
       Status ungleich null.

       Ein numerisches Argument n kann an die Tests übergeben werden (wie  -amin,  -mtime,  -gid,
       -inum, -links, -size, -uid und -used), als

       +n     für größer als n,

       -n     für kleiner als n,

       n      für genau n

       Unterstützte Tests:

       -amin n,
              Auf  die  Datei  wurde  zuletzt  vor  weniger  als,  mehr  als oder genau n Minuten
              zugegriffen.

       -anewer Bezug
              Die Zeit des letzten Zugriffs auf die  aktuelle  Datei  ist  neuerer  als  die  der
              letzten  Veränderung der Bezugsdatei. Falls Bezug ein symbolischer Link ist und die
              Optionen -H oder -L in Kraft sind, wird immer die Zeit der letzten Datenveränderung
              der Datei benutzt, auf die er zeigt.

       -atime n
              Auf  die  Datei  ist  vor weniger als, mehr als oder genau n*24 Stunden zugegriffen
              worden. Wenn Find herausfindet, wieviele 24-Stundenzeiträume es her ist,  seit  auf
              die  Datei zugegriffen wurde, wird jeder Bruchteil ignoriert, so dass -atime +1 auf
              eine Datei passt, auf die zuletzt vor zwei Tagen zugegriffen wurde.

       -cmin n
              Der Status der Datei wurde vor weniger als, mehr als oder genau n Minuten geändert.

       -cnewer Bezug
              Die Zeit der letzten Statusänderung der aktuellen Datei ist  neuerer  als  die  der
              letzten Datenveränderung der Bezugsdatei. Falls Bezug ein symbolischer Link ist und
              die  Optionen  -H  oder  -L  in  Kraft  sind,  wird  immer  die  Zeit  der  letzten
              Datenveränderung der Datei benutzt, auf den er zeigt.

       -ctime n
              Der  Dateistatus  wurde  zuletzt  vor weniger als, mehr als oder genau n*24 Stunden
              geändert. Lesen Sie die Kommentare zu -atime, um  zu  verstehen,  wie  Rundung  die
              Interpretation der Dateistatus-Änderungszeiten beeinflusst.

       -empty Die Datei ist leer und entweder eine reguläre Datei oder ein Verzeichnis.

       -executable
              passt  auf  ausführbare  Dateien  und  durchsuchbare  Verzeichnisse  (im  Sinn  der
              Namensauflösung)     des     aktuellen     Benutzers.      Dies      berücksichtigt
              Zugriffssteuerungslisten   (Access   Control   Lists)   und  andere  Artefakte  von
              Benutzerrechten, die der Test -perm  ignoriert.  Dieser  Test  macht  Gebrauch  vom
              Systemaufruf  access(2)  und  kann  daher  durch  NFS-Server  getäuscht werden, die
              Abbildung der UID (oder Root-Squashing)  nutzen,  da  viele  Systeme  access(2)  im
              Kernel des Clients implementieren und daher von den Abbildungsinformationen der UID
              keinen Gebrauch machen können, die auf dem Server gehalten werden. Da  dieser  Test
              nur   auf  dem  Ergebnis  des  Systemaufrufs   access(2)  basiert,  gibt  es  keine
              Gewährleistung, dass eine Datei, bei der dieser Test erfolgreich  war,  tatsächlich
              ausgeführt werden kann.

       -false Immer falsch

       -fstype Typ
              Die  Datei  liegt auf einem Dateisystem des Typs Typ. Die gültigen Dateisystemtypen
              variieren zwischen verschiedenen Versionen von Unix; eine unvollständige Liste  der
              Dateisystemtypen,  die auf einigen Versionen von Unix und anderen akzeptiert werden
              ist Folgende: ufs, 4.2, 4.3, nfs,tmp, mfs, S51K und S52K. Sie  können  -printf  mit
              der Option %F benutzen, um die Typen Ihrer Dateisysteme zu sehen.

       -gid n Die numerische Gruppenkennung der Datei ist kleiner als, größer als oder genau n.

       -group gname
              Datei gehört der Gruppe Gruppenname (numerische Gruppenkennungen erlaubt).

       -ilname Muster
              wie  -lname, aber der Treffer berücksichtigt keine Groß-/Kleinschreibung. Falls die
              Option -follow in Kraft ist,  gibt  dieser  Test  falsch  zurück,  außer  wenn  der
              symbolische Link kaputt ist.

       -iname Muster
              Funktioniert   genauso   wie   -name  ohne  jedoch  Groß-  und  Kleinschreibung  zu
              berücksichtigen. Zum Beispiel werden die Muster »fo*« und »F??« beide  die  Dateien
              »Foo«,  »FOO«,  »foo«,  »fOo«  usw.  finden.  Das Muster *bar wird auch Dateien wie
              ».foobar« finden.

       -inum n
              Die Inode-Nummer der Datei ist kleiner  als,  größer  als  oder  genau  n.  Es  ist
              normalerweise einfacher, stattdessen den Test -samefile zu benutzen.

       -ipath Muster
              wie -path, aber der Treffer berücksichtigt keine Groß-/Kleinschreibung

       -iregex Muster
              wie -regex, aber der Treffer berücksichtigt keine Groß-/Kleinschreibung

       -iwholename Muster
              Siehe -ipath. Diese Alternative ist nicht so portierbar wie -path.

       -links n
              Datei hat weniger als, mehr als oder genau n harte Links.

       -lname Muster
              Datei  ist  ein  symbolischer  Link,  dessen  Inhalt zum Shell-Muster Muster passt.
              Insbesondere behandeln die Metazeichen nicht »/« oder ».«. Falls  die  Optionen  -L
              oder  -follow  in  Kraft  sind,  gibt  dieser  Test  falsch  zurück, außer wenn der
              symbolische Link kaputt ist.

       -mmin n
              Daten der Datei wurden zuletzt vor weniger als,  mehr  als  oder  genau  n  Minuten
              verändert.

       -mtime n
              Daten  der  Datei  wurden zuletzt vor weniger als, mehr als oder genau n*24 Stunden
              verändert. Lesen Sie die Kommentare zu -atime, um zu  verstehen,  wie  Rundung  die
              Interpretation der Dateiänderungszeiten beeinflusst.

       -name Muster
              Der Dateiname ohne führende Verzeichnisse (basename) passt zum Shell-Muster Muster.
              Da  die  führenden   Verzeichnisse   entfernt   sind,   enthalten   die   für   die
              Übereinstimmungsfindung   mit   -name  berücksichtigten  Dateinamen  niemals  einen
              Schrägstrich, daher wird »-name a/b« niemals einen Treffer ergeben.  Wahrscheinlich
              werden  Sie  stattdessen  -path benutzen müssen. Eine Warnung wird ausgegeben, wenn
              Sie dies zu tun versuchen, es sei denn, die Umgebungsvariable  POSIXLY_CORRECT  ist
              gesetzt.  Die  Metazeichen  (»*«, »?« und »[]«) entsprechen einem ».« am Anfang des
              Basisnamens  (dies  ist  eine  Änderung   in   findutils-4.2.2;   siehe   Abschnitt
              STANDARDKONFORMITÄT unten). Um ein Verzeichnis und die Dateien darin zu ignorieren,
              benutzen Sie -prune statt jede Datei in dem Baum zu überprüfen; ein Beispiel finden
              Sie  in  der Beschreibung dieser Aktion. Klammern werden nicht als etwas Besonderes
              erkannt, trotz der Tatsache, dass einige Shells einschließlich  der  Bash  Klammern
              eine    besondere    Bedeutung   innerhalb   von   Shell-Mustern   beimessen.   Der
              Dateinamensabgleich  wird  unter  Benutzung  der   Bibliotheksfunktion   fnmatch(3)
              durchgeführt. Vergessen Sie nicht, das Muster in Anführungszeichen zu setzen, um es
              vor Expandierung durch die Shell zu schützen.

       -newer Bezug
              Die Zeit der letzten Datenveränderung der aktuellen Datei ist neuerer als  die  der
              letzten Datenveränderung der Bezugsdatei. Falls Bezug ein symbolischer Link ist und
              die  Optionen  -H  oder  -L  in  Kraft  sind,  wird  immer  die  Zeit  der  letzten
              Datenveränderung der Datei benutzt, auf den er verweist.

       -newerXY Bezug
              Dies  ist erfolgreich, wenn der Zeitstempel X der Datei als neuer als der der Datei
              Y der Datei Bezug erkannt wird. Die Zeichen X und Y sind aus  folgenden  Buchstaben
              frei wählbar:

              a   Die Zugriffszeit der Datei Bezug
              B   Die Erstellungszeit der Datei Bezug
              c   Die Inode-Statusänderungszeit von Bezug
              m   Die Änderungszeit der Datei Bezug
              t   Bezug wird direkt als eine Zeit interpretiert

              Einige  Kombinationen  sind  ungültig. So darf X bespielsweise nicht t sein. Einige
              Kombinationen sind nicht auf allen Systemen implementiert.  B  wird  beispielsweise
              nicht  von allen Systemen unterstützt. Falls eine ungültige oder nicht unterstützte
              Kombination von XY angegeben wurde,  kommt  es  dadurch  zu  einem  schwerwiegenden
              Fehler.  Zeitangaben  werden  diesbezüglich  wie  das Argument zu der Option -d von
              GNU-date interpretiert. Falls Sie versuchen die Erstellungszeit  einer  Bezugsdatei
              zu benutzen und die Erstellungszeit nicht bestimmt werden kann, kommt es dadurch zu
              einer Nachricht über einen schwerwiegenden Fehler. Falls Sie  einen  Test  angeben,
              der  sich  auf die Erstellungszeit der Dateien bezieht, die untersucht werden, wird
              dieser Test für jene Dateien fehlschlagen, deren Erstellungszeit nicht bekannt ist.

       -nogroup
              Der numerische Gruppenkennung der Datei entspricht keiner Gruppe.

       -nouser
              Die numerische Benutzerkennung der Datei gehört zu keinem Benutzer.

       -path Muster
              Der Dateiname passt zum Shell-Muster Muster. Die Metazeichen behandeln »/« oder ».«
              nicht besonders; daher wird zum Beispiel
                  find . -path "./sr*sc"
              Gibt  einen Eintrag für ein Verzeichnis namens ./src/misc (falls es existiert) aus.
              Um ein gesamtes Verzeichnis zu ignorieren, benutzen Sie -prune, statt jede Datei in
              dem  Baum  zu  überprüfen.  Beachten Sie, dass Mustervergleichstests auf den ganzen
              Dateinamen  angewendet  werden,  beginnend  von  einem  der  auf  der  Befehlszeile
              benannten Startpunkte. Es würde nur Sinn ergeben, hier einen absoluten Pfadnamen zu
              benutzen, wenn der maßgebliche  Startpunkt  auch  ein  absoluter  Pfad  wäre.  Dies
              bedeutet, dass dieser Befehl niemals auf etwas zutreffen wird:
                  find bar -path /foo/bar/myfile -print
              Find  vergleicht  das Argument -path mit der Verkettung eines Verzeichnisnamens mit
              dem Basisnamen der Datei, die es  untersucht.  Da  die  Verkettung  nie  mit  einem
              Schrägstrich  endet,  werden -path-Argumente mit einem solchen Schrägstrich am Ende
              nie als Treffer gewertet (außer wenn vielleicht ein Startpunkt in der  Befehlszeile
              angegeben  wird).  -path  wird  auch von find in HP-UX unterstützt und ist Teil des
              Standards POSIX 2008.

       -perm Modus
              Die Zugriffsrechte der Datei entsprechen exakt dem Modus (oktal  oder  symbolisch).
              Da  exakte  Übereinstimmung  nötig  ist,  wenn  Sie diese Form für symbolische Modi
              benutzen möchten, müssen Sie möglicherweise eine  eher  komplexe  Moduszeichenkette
              angeben.  -perm  g=w  wird  beispielsweise nur bei Dateien zutreffen, die den Modus
              0020 haben (also einer, bei dem das Schreibrecht der Gruppe  das  einzige  gesetzte
              Recht  ist).  Wahrscheinlicher  ist,  dass  Sie  die  Formen  »/« oder »-« benutzen
              möchten, zum Beispiel -perm -g=w, was  auf  jede  Datei  mit  Gruppenschreibrechten
              passt. Einige anschauliche Beispiele finden Sie im Abschnitt BEISPIELE.

       -perm -Modus
              Alle  Rechte-Bits  Modus  sind  für diese Datei gesetzt. Symbolische Modi werden in
              dieser Form akzeptiert. Dies ist üblicherweise die Art, auf die  Sie  sie  benutzen
              möchten.  Sie  müssen »u«, »g« oder »o« angeben, falls Sie einen symbolischen Modus
              verwenden. Einige anschauliche Beispiele finden Sie im Abschnitt BEISPIELE.

       -perm /Modus
              Einige der Rechte-Bits Modus sind für diese Datei gesetzt. Symbolische Modi  werden
              in  dieser  Form  akzeptiert. Sie müssen »u«, »g« oder »o« angeben, falls Sie einen
              symbolischen Modus verwenden. Einige anschauliche Beispiele finden Sie im Abschnitt
              BEISPIELE.  Falls  keine  Rechte-Bits in Modus gesetzt sind, trifft dieser Test auf
              alle Dateien zu (die Idee, die dahinter steckt, ist das durchgängige  Verhalten  zu
              -perm -000).

       -perm +Modus
              Dies  wird  nicht  mehr  unterstützt  und wurde bereits 2005 als veraltet markiert.
              Verwenden Sie stattdessen -perm /Modus.

       -readable
              trifft auf durch den aktuellen Benutzer lesbare  Dateien  zu.  Dies  berücksichtigt
              Zugriffssteuerungslisten  (ACLs)  und  andere  Artefakte  von Rechten, die der Test
              -perm ignoriert. Dieser Test macht Gebrauch vom  Systemaufruf  access(2)  und  kann
              daher   durch   NFS-Server   getäuscht   werden,   die   Abbildung  der  UID  (oder
              Root-Squashing)  nutzen,  da  viele  Systeme  access(2)  im  Kernel   des   Clients
              implementieren  und  daher  von den Abbildungsinformationen der UID keinen Gebrauch
              machen können, die auf dem Server gehalten werden.

       -regex Muster
              der Dateiname passt zu dem regulären Ausdruck Muster. Dies ist ein Treffer auf  den
              gesamten  Pfad, keine Suche. Um beispielsweise eine Datei mit dem Namen ./fubar3 zu
              finden, können Sie die regulären Ausdrücke ».*bar.« oder  ».*b.*3«  benutzen,  aber
              nicht  »f.*r3«.  Die  regulären  Ausdrücke,  die  find versteht, sind standardmäßig
              reguläre Ausdrücke von Emacs (außer dass ».« auf Zeilenumbruch  passt),  dies  kann
              aber mit der Option -regextype geändert werden.

       -samefile Name
              Datei bezieht sich auf den gleichen Inode wie Name. Wenn -L in Kraft ist, kann dies
              symbolische Links umfassen.

       -size n[cwbkMG]
              Datei belegt weniger als, mehr als oder genau  n  Speichereinheiten  (aufgerundet).
              Die folgenden Endungen können benutzt werden:

              »b«    für 512-Byte-Blöcke (dies ist die Vorgabe, wenn keine Endung benutzt wird)

              »c«    für Byte

              »w«    für Wörter aus zwei Byte

              »k«    für Kibibyte (KiB, Einheiten aus 1024 Byte)

              »M«    für Mebibyte (MiB, Einheiten aus 1024 * 1024 = 1048576 Byte)

              »G«    für Gibibyte (GiB, Einheiten aus 1024 * 1024 * 1024 = 1073741824 Byte)

              Die  Größe  ist  einfach  das  Mitglied  »st_size«  der  Struktur stat, das von dem
              Systemaufruf lstat (oder stat) befüllt wird. Es wird wie oben beschrieben gerundet.
              Mit  anderen  Worten,  es  ist  mit  dem Ergebnis des Aufrufs von ls -l konsistent.
              Vergessen Sie nicht, dass die Formatkennzeichner »%k« und »%b« von -printf  Dateien
              mit   Löchern   unterschiedlich   handhaben.   Die   Endung  »b«  bezeichnet  stets
              512-Byte-Blöcke und niemals 1024-Byte-Blöcke; dies unterscheidet sich vom Verhalten
              von -ls.

              Die Präfixe + und - bezeichnen größer und kleiner als, wie üblich, d.h. eine exakte
              Größe von n Einheiten wird nicht passen. Denken Sie daran, dass die Größe  auf  die
              nächste  Einheit  aufgerundet  wird.  Daher  ist  -size  -1M  nicht  äquivalent  zu
              -size -1048576c. Ersteres passt  nur  auf  leere  Dateien,  während  Letzteres  auf
              Dateien von 0 bis 1.048.575 byte passt.

       -true  immer wahr

       -type c
              Datei ist vom Typ c;:

              b      blockorientierte Spezialdatei (gepuffert)

              c      zeichenorientierte Spezialdatei (nicht gepuffert)

              d      Verzeichnis

              p      benannte Pipe (FIFO)

              f      reguläre Datei

              l      symbolischer Link; dies ist niemals wahr, falls die Optionen -L oder -follow
                     in Kraft sind, außer wenn der symbolische Link kaputt ist.  Falls  Sie  nach
                     symbolischen  Links  suchen  möchten,  während -L in Kraft ist, benutzen Sie
                     -xtype.

              s      Socket

              D      Door (Solaris)

              Um nach mehr als einem Typ auf einmal zu suchen, können Sie eine kombinierte  Liste
              der Typbuchstaben, getrennt durch ein Komma »,«, angeben (GNU-Erweiterung).

       -uid n Die numerische Benutzerkennung der Datei ist kleiner als, größer als oder genau n.

       -used n
              Auf  die  Datei ist vor weniger als, mehr als oder genau n Tagen nach ihrer letzten
              Statusänderung zugegriffen worden.

       -user Benutzername
              Die Datei gehört dem Anwender Benutzername (numerische Benutzerkennung erlaubt).

       -wholename Muster
              Siehe -path. Diese Alternative ist nicht so portierbar wie -path.

       -writable
              passt auf durch den aktuellen  Benutzer  schreibbare  Dateien.  Die  berücksichtigt
              Zugriffssteuerungslisten  (ACLs)  und  andere  Artefakte  von Rechten, die der Test
              -perm ignoriert. Dieser Test macht Gebrauch vom  Systemaufruf  access(2)  und  kann
              daher   durch   NFS-Server   getäuscht   werden,   die   Abbildung  der  UID  (oder
              Root-Squashing)  nutzen,  da  viele  Systeme  access(2)  im  Kernel   des   Clients
              implementieren  und  daher  von den Abbildungsinformationen der UID keinen Gebrauch
              machen können, die auf dem Server gehalten werden.

       -xtype c
              das Gleiche wie -type,  außer  wenn  die  Datei  ein  symbolischer  Link  ist.  Für
              symbolische  Links  gilt:  Falls die Optionen -H oder -P angegeben wurden, ist dies
              wahr, wenn die Datei ein Link auf eine Datei des Typs c ist oder, falls die  Option
              -L angegeben wurde, wenn c »l« ist. Anders ausgedrückt, für symbolische Links prüft
              -xtype den Typ der Datei, den -type nicht prüft.

       -context Muster
              (Nur SELinux) Sicherheitskontexte der Datei, die dem Muster entspricht.

   AKTIONEN
       -delete
              Dateien oder Verzeichnisse löschen; wahr, falls  erfolgreich  entfernt.  Falls  das
              Entfernen  fehlschlägt, wird eine Fehlermeldung ausgegeben und der Rückgabewert von
              find wird ungleich null sein (wenn es letztendlich beendet wird).

              Warnung: Vergessen Sie nicht, dass find die Befehlszeile als Ausdruck auswertet, so
              dass  find  durch ein zuerst gesetztes -delete veranlasst wird, alles unterhalb der
              von Ihnen angegebenen Startpunkte zu löschen.

              Wenn Sie die Aktion -delete in der Befehlszeile  verwenden,  wird  automatisch  die
              Option  -depth  eingeschaltet.  Da -depth seinerseits die Option -prune wirkungslos
              macht, können -depth und -prune nicht sinnvoll kombiniert werden.

              Oft möchte ein Benutzer mit -print eine find-Befehlszeile testen, bevor -delete für
              die  tatsächliche  Entfernung  hinzugefügt  wird.  Um  überraschende  Ergebnisse zu
              vermeiden, ist es üblicherweise das Beste, -depth explizit während dieser  früheren
              Testläufe hinzuzufügen.

              Die Aktion -delete schlägt beim Entfernen eines Verzeichnisses fehl, außer wenn das
              Verzeichnis leer ist.

              Zusammen mit der Option -ignore_readdir_race wird find Fehler  der  Aktion  -delete
              ignorieren,  falls  die  Datei verschwunden ist, seit das Elternverzeichnis gelesen
              wurde: es wird keine Fehlerdiagnosen ausgeben, der Exit-Code nicht  auf  einen  von
              Null  verschiedenen Wert gesetzt und der Rückkehr-Code der Aktion -delete wird wahr
              sein.

       -exec Befehl ;
              führt den Befehl aus; wahr,  wenn  Status  0  zurückgegeben  wird.  Alle  folgenden
              Argumente  von  find  werden als Argumente des Befehls betrachtet, bis ein Argument
              gefunden wird, das »;« beinhaltet. Die Zeichenkette »{}« wird überall,  wo  sie  in
              den Argumenten erscheint, durch den aktuell verarbeiteten Dateinamen ersetzt, nicht
              nur in Argumenten, in denen sie allein steht, wie in einigen Versionen von find. Es
              könnte  nötig  sein,  beide  Konstruktionen  zu  maskieren  (mit einem »\«) oder in
              Anführungszeichen zu setzen,  um  sie  vor  einer  Expansion  durch  die  Shell  zu
              schützen.  Im  Abschnitt  BEISPIELE  finden Sie Beispiele, wie Sie die Option -exec
              benutzen. Der angegebene Befehl wird jeweils für jede gefundene  Datei  ausgeführt.
              Der   Befehl   wird   im   Startverzeichnis   ausgeführt.  Es  gibt  unvermeidliche
              Sicherheitsprobleme rings um den Gebrauch der Aktion -exec; Sie sollten stattdessen
              die Option -execdir verwenden.

       -exec Befehl {} +
              Diese  Variante  der Aktion -exec führt den angegebenen Befehl für die ausgewählten
              Dateien aus, aber die Befehlszeile wird durch das Anhängen jeder ausgewählten Datei
              an  das  Ende  gebildet; die Gesamtzahl der Befehlsaufrufe wird viel geringer sein,
              als die Anzahl passender Dateien. Die Befehlszeile wird auf die gleiche  Weise  wie
              bei xargs gebildet. Innerhalb des Befehls ist nur eine Instanz von »{}« erlaubt und
              sie muss am Ende direkt vor dem »+« erscheinen; sie muss (mit einem  »\«)  maskiert
              oder  in Anführungszeichen gesetzt werden, um die Interpretation durch die Shell zu
              verhindern. Der Befehl wird im Startverzeichnis ausgeführt. Falls irgendein  Aufruf
              mit  der  »+«-Form einen von Null verschiedenen Wert als Exit-Status zurückliefert,
              dann liefert find einen von Null verschiedenen Exit-Status zurück. Wenn find  einen
              Fehler  entdeckt,  kann dies gelegentlich zu einem unmittelbaren Abbruch führen, so
              dass ausstehende Befehle überhaupt nicht mehr ausgeführt werden. Aus  diesem  Grund
              führt  -exec mein-Befehl  {} + -quit  nicht  dazu,  dass  mein-Befehl  tatsächlich
              ausgeführt wird. Diese Variante von -exec gibt immer »wahr« zurück.

       -execdir Befehl ;

       -execdir Befehl {} +
              wie -exec, aber der angegebene Befehl wird in dem Unterverzeichnis ausgeführt,  das
              die passende Datei enthält, was normalerweise nicht das Verzeichnis ist, in dem Sie
              find aufgerufen haben. So wie bei -exec sollten die geschweiften Klammern  {}  auch
              hier  in  Anführungszeichen  gesetzt  werden,  wenn  find  aus  einer  Shell heraus
              aufgerufen wird.  Dies  ist  eine  wesentlich  sicherere  Methode  zum  Aufruf  von
              Befehlen,  da sie Race Conditions während der Auflösung von Pfaden zu den passenden
              Dateien vermeidet. Wie bei der Aktion -exec wird die Form  »+«  von  -execdir  eine
              Befehlszeile  bilden,  um  mehr  als eine passende Datei zu verarbeiten, aber jeder
              angegebene  Aufruf  des  Befehls  wird  nur  Dateien  auflisten,  die  im  gleichen
              Unterverzeichnis   existieren.   Falls   Sie  diese  Option  benutzen,  müssen  Sie
              sicherstellen, dass Ihre Umgebungsvariable PATH  nicht  direkt  auf  ».«  verweist;
              andernfalls könnte ein Angreifer Befehle seiner Wahl ausführen, indem er eine Datei
              mit geeignetem  Namen  in  einem  Verzeichnis  hinterlässt,  in  dem  Sie  -execdir
              ausführen  werden.  Das  Gleiche gilt für die Einträge in PATH, die leer oder keine
              absoluten Verzeichnisnamen sind. Falls irgendein Aufruf in der »+«-Form  einen  von
              Null  verschiedenen Wert als Exit-Status zurückliefert, dann liefert find einen von
              Null verschiedenen Exit-Status zurück. Wenn find einen Fehler entdeckt,  kann  dies
              gelegentlich   zum  unmittelbaren  Abbruch  führen,  so  dass  ausstehende  Befehle
              überhaupt nicht mehr ausgeführt werden. Das Ergebnis der  Aktion  hängt  davon  ab,
              welche  der  Varianten  +  oder the ; benutzt wird. -execdir Befehl {} + gibt immer
              »wahr« zurück, während -execdir Befehl {} ; nur dann »wahr« ergibt, wenn der Befehl
              0 zurückgibt.

       -fls Datei
              wahr;  wie  -ls,  schreibt aber wie -fprint nach Datei. Die Ausgabedatei wird immer
              erstellt, sogar wenn das Prädikat niemals passte. Lesen Sie den Abschnitt UNÜBLICHE
              DATEINAMEN, zu erfahren, wie unübliche Dateinamen gehandhabt werden.

       -fprint Datei
              wahr;  gibt den vollständigen Dateinamen in Datei aus. Falls Datei nicht existiert,
              wird sie erzeugt; andernfalls wird sie  gekürzt.  Die  Dateinamen  /dev/stdout  und
              /dev/stderr  werden gesondert gehandhabt; sie beziehen sich auf die Standardausgabe
              beziehungsweise die Standardfehlerausgabe. Die Ausgabedatei  wird  immer  erstellt,
              sogar  wenn  das  Prädikat  niemals  passte.  Lesen  Sie  den  Abschnitt  UNÜBLICHE
              DATEINAMEN, um zu erfahren, wie unübliche Dateinamen gehandhabt werden.

       -fprint0 Datei
              wahr; wie -print0, schreibt aber wie -fprint  nach  Datei.  Die  Ausgabedatei  wird
              immer  erstellt,  sogar,  wenn das Prädikat niemals passte. Lesen Sie den Abschnitt
              UNÜBLICHE DATEINAMEN, um zu erfahren, wie unübliche Dateinamen gehandhabt werden.

       -fprintf Datei Format
              wahr; wie -printf, schreibt aber wie -fprint  nach  Datei.  Die  Ausgabedatei  wird
              immer  erstellt,  sogar,  wenn das Prädikat niemals passte. Lesen Sie den Abschnitt
              UNÜBLICHE DATEINAMEN, um zu erfahren, wie unübliche Dateinamen gehandhabt werden.

       -ls    wahr; listet aktuelle Datei im Format ls -dils auf  der  Standardausgabe  auf.  Die
              Anzahl  der  Blöcke  besteht  aus  1 kB-Blöcken,  außer  wenn die Umgebungsvariable
              POSIXLY_CORRECT gesetzt ist, in der Blöcke zu 512 Byte benutzt  werden.  Lesen  Sie
              den  Abschnitt  UNÜBLICHE  DATEINAMEN,  um  zu  erfahren,  wie unübliche Dateinamen
              gehandhabt werden.

       -ok Befehl ;
              wie -exec, vorher wird der Anwender aber um Bestätigung gebeten. Falls der Anwender
              zustimmt,  wird  der  Befehl ausgeführt. Andernfalls wird nur falsch zurückgegeben.
              Wenn  der  Befehl  ausgeführt  wird,  ist  seine  Standardeingabe  umgeleitet   von
              /dev/null.  Diese  Aktion darf nicht zusammen mit der Option -files0-from angegeben
              werden.

              Die Antwort auf die Abfrage wird mit einem Paar regulärer Ausdrücke verglichen,  um
              zu  bestimmen,  ob  es  eine  positive  oder  negative Antwort ist. Dieser reguläre
              Ausdruck stammt vom System, falls  die  Umgebungsvariable  POSIXLY_CORRECT  gesetzt
              ist,  ansonsten  von  den  Meldungsübersetzungen  von  find. Falls das System keine
              geeignete Definition hat, wird die Definition von find selbst  benutzt.  Auf  jeden
              Fall  wird  die  Interpretation  des regulären Ausdrucks von den Umgebungsvariablen
              LC_CTYPE  (Zeichenklassen)  und  LC_COLLATE  (Zeichenbereiche   und   entsprechende
              Klassen) beeinträchtigt.

       -okdir Befehl ;
              wie  -exec,  fragt  den Anwender aber zuerst auf die gleiche Art wie für -ok. Falls
              der Anwender nicht  zustimmt,  wird  nur  falsch  zurückgegeben.  Wenn  der  Befehl
              ausgeführt  wird,  ist seine Standardeingabe umgeleitet von /dev/null. Diese Aktion
              darf nicht zusammen mit der Option -files0-from angegeben werden.

       -print wahr; gibt den vollständigen Dateinamen gefolgt von einem  Zeilenvorschub  auf  der
              Standardausgabe  aus.  Falls  Sie  die Ausgabe von find in ein anderes Programm per
              Pipe weiterleiten und dort auch nur die geringste  Möglichkeit  besteht,  dass  die
              Dateien,  die  Sie suchen, einen Zeilenvorschub enthalten, sollten Sie ernsthaft in
              Betracht ziehen, statt  -print  -print0  zu  verwenden.  Lesen  Sie  den  Abschnitt
              UNÜBLICHE DATEINAMEN, um zu erfahren, wie unübliche Dateinamen gehandhabt werden.

       -print0
              wahr;  gibt  den  vollständigen Dateinamen gefolgt von einem Null-Zeichen (anstelle
              des Zeilenvorschubs, den -print benutzt) aus. Dies ermöglicht, dass Dateinamen, die
              Zeilenvorschübe oder andere Typen von Leerräumen enthalten, korrekt durch Programme
              interpretiert werden, die die Ausgabe von find verarbeiten. Diese Option entspricht
              der Option -0 von xargs.

       -printf Format
              wahr;  gibt  Format  auf  der  Standardausgabe aus und interpretiert dabei »\«- und
              »%«-Anweisungen. Feldbreiten  und  Genauigkeiten  können  wie  bei  der  C-Funktion
              printf(3)  angegeben werden. Bitte beachten Sie, dass viele Felder mit %s statt mit
              %d ausgegeben werden. Dies kann bedeuten, dass  der  Schalter  nicht  wie  erwartet
              funktioniert.  Dies  bedeutet  auch,  dass  die  Option  »-« nicht funktioniert (er
              erzwingt, dass Felder linksbündig ausgerichtet  werden).  Anders  als  -print  fügt
              -printf keinen Zeilenvorschub an das Ende der Zeichenkette. Die Anweisungen sind:

              \a     Alarmton

              \b     Rückschritt

              \c     Ausgabe  gemäß  dieser  Formatbeschreibung  sofort  stoppen  und die Ausgabe
                     leeren

              \f     Seitenvorschub

              \n     Zeilenumbruch

              \r     Wagenrücklauf

              \t     horizontaler Tabulator

              \v     vertikaler Tabulator

              \0     ASCII-Code 0

              \\     der Rückwärtsschrägstrich selbst (»\«)

              \NNN   das Zeichen, dessen ASCII-Code NNN ist (oktal)

              Ein »\«-Zeichen gefolgt von einem anderen Zeichen wird als ein gewöhnliches Zeichen
              betrachtet, daher werden beide ausgegeben.

              %%     das Prozentzeichen selbst

              %a     die  Zeit  des  letzten  Zugriffs auf die Datei, zurückgegeben im Format der
                     C-Funktion ctime(3).

              %Ak    die Zeit des letzten Zugriffs auf die Datei,  angegeben  durch  k.  Das  ist
                     entweder  »@« oder eine Anweisung für die C-Funktion strftime(3). Einige der
                     möglichen Werte für k sind nachfolgend aufgeführt; eine  vollständige  Liste
                     finden   Sie   in  der  Dokumentation  zu  strftime(3).  Einige  davon  sind
                     möglicherweise   aufgrund   von   systembedingten   Unterschieden   in   der
                     Bibliotheksfunktion strftime(3) nicht auf allen Systemen verfügbar.

                     @      Sekunden seit dem 1.1.1970, 00:00 Uhr GMT mit Bruchteil

                     Zeitfelder:

                     H      Stunde (00..23)

                     I      Stunde (01..12)

                     k      Stunde ( 0..23)

                     l      Stunde ( 1..12)

                     M      Minute (00..59)

                     p      PM oder AM der Locale

                     r      Zeit, 12 Stunden (hh:mm:ss: AM/PM)

                     S      Sekunden (00.00 bis 61.00). Es gibt Nachkommastellen.

                     T      Zeit, 24 Stunden (hh:mm:ss.xxxxxxxxxx)

                     +      Datum    und    Zeit,    getrennt    durch    »+«,    zum    Beispiel
                            »2004-04-28+22:22:05.0«. Dies ist eine GNU-Erweiterung. Die Zeit wird
                            in  der  aktuellen  Zeitzone  angegeben  (die  durch  das  Setzen der
                            Umgebungsvariable  TZ  beeinflusst  sein  könnte).  Das  Sekundenfeld
                            beinhaltet einen Bruchteil.

                     X      Zeitdarstellung  der  Locale  (H:M:S). Das Sekundenfeld enthält einen
                            Bruchanteil.

                     Z      Zeitzone (z.B. EDT) oder nichts, falls keine Zeitzone bestimmt werden
                            kann

                     Datumsfelder:

                     a      abgekürzter Wochentag der Locale (So bis Sa)

                     A      voller Wochentag der Locale, variable Länge (Sonntag bis Samstag)

                     b      abgekürzter Monatsname der Locale (Jan bis Dez)

                     B      voller Monatsname der Locale in variabler Länge (Januar bis Dezember)

                     c      Datum  und  Zeit der Locale (Sa 4. Nov 12:02:33 EST 1989). Das Format
                            entspricht dem von ctime(3) und wahrt daher  die  Kompatibilität  mit
                            diesem Format. Es gibt dort keine Nachkommastellen im Sekundenfeld.

                     d      Tag des Monats (01 bis 31)

                     D      Datum (mm/dd/yy)

                     F      Datum (yyyy-mm-dd)

                     h      das Gleiche wie b

                     j      Tag des Jahres (001..366)

                     m      Monat (01..12)

                     U      Nummer der Woche im Jahr mit Sonntag als erstem Tag der Woche (00 bis
                            53)

                     w      Tag der Woche (0 bis 6)

                     W      Nummer der Woche im Jahr mit Montag als erstem Tag der Woche (00  bis
                            53)

                     x      Datumsdarstellung der Locale (mm/dd/yy)

                     y      Die letzten zwei Ziffern des Jahres (00..99)

                     Y      Jahr (1970 …)

              %b     der   für   diese   Datei  benutzte  Plattenplatz  in  512-Byte-Blöcken.  Da
                     Plattenplatz als Vielfaches der Blockgröße des Dateisystems reserviert wird,
                     ist  dieser üblicherweise größer als %s/512, er kann aber auch kleiner sein,
                     wenn die Datei eine Datei mit Löchern (Sparse-Datei) ist.

              %Bk    Der Erstellungszeitpunkt der Datei in dem von k angegebenen Format,  welches
                     das Gleiche wie für %A ist. Diese Anweisung liefert eine leere Zeichenkette,
                     falls   das   darunterliegende   Betriebssystem   oder   Dateisystem   keine
                     Erstellungszeitpunkte unterstützt.

              %c     das  Datum,  an  dem zum letzten Mal der Status der Datei geändert wurde, im
                     Format der C-Funktion ctime(3).

              %Ck    das Datum, an dem zum letzten Mal der Status der Datei  geändert  wurde,  in
                     dem durch k angegebenen Format, was das Gleiche ist, wie für %A.

              %d     die  Tiefe  der  Datei im Verzeichnisbaum; Null bedeutet, dass die Datei ein
                     Befehlszeilenargument ist.

              %D     die Gerätenummer des Geräts auf der die Datei existiert (das  Feld  »st_dev«
                     der Stuktur »stat«) als Dezimalzahl

              %f     Gibt  den  Basisnamen  aus.  Dies  ist  der  Dateiname  ohne  vorangestellte
                     Verzeichnisnamen (also nur das letzte Element). Für /  ergibt  sich  /.  Ein
                     Beispiel finden Sie im Abschnitt BEISPIELE.

              %F     Typ  des Dateisystems, auf dem die Datei liegt; dieser Wert kann für -fstype
                     benutzt werden.

              %g     der Name der Gruppe der Datei oder die numerische Gruppenkennung,  wenn  die
                     Gruppe keinen Namen hat

              %G     die numerische Gruppenkennung der Datei

              %h     Der Verzeichnisname; die voranstehenden Verzeichnisse des Dateinamens (alles
                     außer dem letzten Element). Falls der Dateiname keine Schrägstriche  enthält
                     (da  er  im  aktuellen  Verzeichnis  ist),  wird  der Kennzeichner %h zu ».«
                     expandiert.  Für  Dateien,  die  selbst   Verzeichnisse   sind   und   einen
                     Schrägstrich enthalten (/), wird %h zu einer leeren Zeichenkette expandiert.
                     Ein Beispiel finden Sie im Abschnitt BEISPIELE.

              %H     der Startpunkt, unter dem die Datei gefunden wurde

              %i     die Inode-Nummer der Datei (dezimal)

              %k     der für diese Datei benutzte Plattenplatz in 1 kB-Blöcken.  Da  Plattenplatz
                     als  Vielfaches  der Blockgröße des Dateisystems reserviert wird, ist dieser
                     üblicherweise größer als %s/1024, er kann aber auch kleiner sein,  wenn  die
                     Datei eine Datei mit Löchern (Sparse-Datei) ist.

              %l     Ziel  des  symbolischen  Links  (leere  Zeichenkette,  falls  die Datei kein
                     symbolischer Link ist

              %m     die  Zugriffsrechte-Bits  der  Datei  (oktal).  Diese  Option  benutzt   die
                     »traditionellen«  Nummern,  die die meisten Unix-Implementierungen benutzen,
                     falls aber  Ihre  Implementierung  eine  unübliche  Sortierung  der  oktalen
                     Zugriffsrechte   benutzt,   werden   Sie   einen  Unterschied  zwischen  dem
                     tatsächlichen  Wert  des  Datei-Modus  und  der  Ausgabe   von   %m   sehen.
                     Normalerweise  möchten Sie eine führende Null vor dieser Zahl haben. Um dies
                     zu erreichen sollten Sie die Markierung # benutzen  (wie  beispielsweise  in
                     »%#m«).

              %M     die  Zugriffsrechte  der  Datei  (in  symbolischer  Form, wie für ls). Diese
                     Anweisung wird von Findutils seit einschließlich Version 4.2.5 unterstützt.

              %n     Anzahl harter Links auf die Datei

              %p     Name der Datei

              %P     Name der Datei; ohne den Namen  des  Startpunkts,  unter  dem  sie  gefunden
                     wurde.

              %s     die Größe der Datei in Byte

              %S     Dichte der Datei. Diese wird berechnet als (BLOCKGRÖßE*st_blocks / st_size).
                     Der genaue Wert, den Sie für  eine  normale  Datei  einer  bestimmten  Länge
                     erhalten   ist   vom   System   abhängig.   Normale   Dateien   mit  Löchern
                     (Sparse-Dateien) werden einen Wert kleiner als 1.0  aufweisen  und  Dateien,
                     die  indirekte  Blöcke verwenden können, einen Wert größer als 1.0 haben. Im
                     allgemeinen  ist  die  von  einer  Datei   verwandte   Anzahl   an   Blöcken
                     dateisystemabhängig.  Der  Wert,  der für BLOCKGRÖßE verwendet wird, ist vom
                     System abhängig, beträgt aber normalerweise 512 Byte. Falls  die  Dateigröße
                     null  ist, ist der ausgegebene Wert undefiniert. Auf Systemen, auf denen die
                     Unterstützung  für  st_blocks  fehlt,  wird  als  Dichte  einer  Datei  1.0.
                     angenommen.

              %t     Zeit  der  letzten  Änderung  der  Datei  in dem von der C-Funktion ctime(3)
                     zurückgegebenen Format

              %Tk    Zeit der letzten Änderung der Datei in dem durch k angegebenen  Format,  wie
                     bei %A

              %u     Name  des  Benutzers  der  Datei  oder numerische Benutzerkennung, falls der
                     Benutzer keinen Namen hat.

              %U     numerische Benutzerkennung der Datei.

              %y     Typ der Datei (wie in ls -l), U=unbekannter Typ (sollte nicht auftreten)

              %Y     Typ der  Datei  (wie  %y),  folgt  aber  symbolischen  Links:  »L«=Schleife,
                     »N«=nicht existent, »?« für jeden anderen Fehler beim Bestimmen des Typs des
                     Symlink-Ziels.

              %Z     (nur SELinux) Sicherheitskontext der Datei.

              %{ %[ %(
                     Für zukünftige Verwendung reserviert.

              Ein »%«-Zeichen gefolgt von einem anderen Zeichen wird verworfen, aber  das  andere
              Zeichen  wird ausgegeben (verlassen Sie sich nicht darauf, da weitere Formatzeichen
              eingeleitet werden  könnten).  Ein  »%«  am  Ende  des  Formatarguments  verursacht
              unvorhersehbares  Verhalten, da es dort kein nachfolgendes Zeichen gibt. In einigen
              Locales könnte es Ihre Haustürschlüssel verstecken,  während  es  in  anderen  Ihre
              letzte Seite des Romans, den Sie lesen, entfernt.

              Die  Anweisungen  %m  und  %d  unterstützen  die  Schalter  #, 0 und +, die anderen
              Anweisungen  jedoch  nicht,  selbst  wenn  Nummern  ausgegeben  werden.  Numerische
              Anweisungen, die diese Schalter nicht unterstützen, beinhalten G, U, b, D, k und n.
              Der Formatschalter »-« wird unterstützt und ändert die Ausrichtung eines Feldes von
              rechtsbündig (was vorgegeben ist) auf linksbündig.

              Lesen  Sie  den  Abschnitt  UNÜBLICHE  DATEINAMEN,  um  zu  erfahren, wie unübliche
              Dateinamen gehandhabt werden.

       -prune Wahr; falls die Datei ein Verzeichnis ist, wird  nicht  hinein  abgestiegen.  Falls
              -depth  angegeben ist, dann hat -prune keine Wirkung. Da -delete -depth impliziert,
              können Sie -prune und -delete nicht sinnvoll zusammen benutzen.  Um  beispielsweise
              das   Verzeichnis   src/emacs  und  alle  Dateien  und  Verzeichnisse  darunter  zu
              überspringen und die Namen der anderen gefundenen Dateien  auszugeben,  machen  Sie
              etwas wie Folgendes:
                  find . -path ./src/emacs -prune -o -print

       -quit  Beendet sofort (mit einem Rückgabewert von 0, falls keine Fehler aufgetreten sind).
              Dies unterscheidet sich von  -prune,  da  -prune  lediglich  auf  die  Inhalte  der
              ignorierten  Verzeichnisse  angewendet  wird, während -quit einfach nur find sofort
              beendet. Es bleiben keine laufenden  Kindprozesse  übrig.  Alle  mit  -exec  +  or
              -execdir  +  erstellten  Befehle,  die aufgerufen wurden, werden beendet. Nach der
              Ausführung von -quit werden keine weiteren in der Befehlszeile angegebenen  Befehle
              verarbeitet.    Beispielsweise   gibt   »find /tmp/foo /tmp/bar -print -quit«   nur
              »/tmp/foo« aus.
              Ein häufiger Anwendungsfall für -quit ist,  das  Durchsuchen  des  Dateisystems  zu
              beenden,  sobald  das  Gewünschte  gefunden  wurde.  Falls  beispielsweise nur eine
              einzelne Datei gefunden werden soll, können Sie Folgendes tun:
                  find / -name Nadel -print -quit

   OPERATOREN
       aufgelistet in der Reihenfolge abnehmender Wertigkeit:

       ( expr )
              Wertigkeit erzwingen. Da Klammern für die Shell etwas spezielles sind,  werden  Sie
              sie  normalerweise  maskieren  müssen.  Viele  Beispiele  in  dieser  Handbuchseite
              verwenden zu diesem Zweck; »\( … \) anstelle von »( … )«.

       ! Ausdruck
              wahr, wenn der Ausdruck falsch ist. Es wird normalerweise auch nötig  sein,  dieses
              Zeichen vor einer Interpretation durch die Shell zu schützen.

       -not Ausdruck
              das Gleiche wie ! Ausdruck, ist aber nicht POSIX-konform

       Ausdruck1 Ausdruck2
              Zwei  Ausdrücke  in einer Reihe werden mit einem impliziten -a verbunden; Ausdruck2
              wird nicht ausgewertet, wenn Ausdruck1 falsch ist.

       Ausdruck1 -a Ausdruck2
              entspricht Ausdruck1 Ausdruck2

       Ausdruck1 -and Ausdruck2
              entspricht Ausdruck1 Ausdruck2, ist aber POSIX-konform

       Ausdruck1 -o Ausdruck2
              oder; Ausdruck2 wird nicht ausgewertet, falls Ausdruck1 wahr ist

       Ausdruck1 -or Ausdruck2
              entspricht Ausdruck1 -o Ausdruck2, ist aber nicht POSIX-konform

       Ausdruck1, Ausdruck2
              Liste; sowohl Ausdruck1 als auch Ausdruck2 werden immer ausgewertet. Der  Wert  von
              Ausdruck1  wird  verworfen;  der  Wert  der  Liste  ist der Wert von Ausdruck2. Der
              Kommaoperator kann nützlich sein, um nach unterschiedlichen  Kriterien  zu  suchen,
              die  Dateisystemhierarchie aber nur einmal zu durchlaufen. Die Aktion -fprintf kann
              benutzt werden, um die verschiedenen gefundenen Elemente in mehreren  verschiedenen
              Ausgabedateien aufzulisten.

       Bitte  beachten  Sie,  das  -a, wenn es implizit (zum Beispiel, wenn zwei Tests ohne einen
       expliziten Operator zwischen ihnen auftauchen) oder explizit angegeben wird,  Vorrang  vor
       -o hat. Das bedeutet, dass find . -name afile -o -name bfile -print niemals afile ausgibt.

UNÜBLICHE DATEINAMEN

       Viele  der Aktionen von find resultieren in der Ausgabe von Daten, die unter der Kontrolle
       anderer Benutzer stehen. Dies umfasst Dateinamen, Größen, Änderungszeiten und  so  weiter.
       Dateinamen  stellen  ein  potentielles  Problem dar, da sie jedes Zeichen mit Ausnahme von
       »\0« und »/« enthalten können. Unübliche Zeichen in Dateinamen können unerwartete und  oft
       unerwünschte  Dinge  mit  Ihrem  Terminal  tun  (beispielsweise  die  Einstellungen  Ihrer
       Funktionstasten auf einigen Terminals ändern). Unübliche Zeichen werden von  verschiedenen
       Aktionen unterschiedlich gehandhabt, wie im Folgenden beschrieben.

       -print0, -fprint0
              immer  den  genauen  Dateinamen unverändert ausgeben, sogar wenn die Ausgabe an ein
              Terminal geht.

       -ls, -fls
              Unübliche Zeichen werden maskiert. Leerzeichen, Rückwärtsschrägstrich und  doppelte
              Anführungszeichen  werden  unter Benutzung von Maskierung im C-Stil ausgegeben (zum
              Beispiel »\f«, »\«). Andere unübliche Zeichen  werden  unter  Benutzung  von  einer
              oktalen  Maskierung ausgegeben. Andere druckbare Zeichen (für -ls und -fls sind das
              die Zeichen zwischen oktal 041 und 0176) werden unverändert ausgegeben.

       -printf, -fprintf
              Falls die Ausgabe nicht an  ein  Terminal  geht,  wird  sie  unverändert  gedruckt.
              Andernfalls  hängt  das  Ergebnis  davon  ab,  welche  Anweisung  benutzt wird. Die
              Anweisungen %D, %F, %g, %G, %H, %Y und %y expandieren die Werte,  die  nicht  unter
              der  Kontrolle  des Dateibesitzers stehen und werden daher in der vorliegenden Form
              gedruckt. Die Anweisungen %a, %b, %c, %d, %i, %k, %m, %M, %n, %s,  %t,  %u  und  %U
              haben  Werte, die unter der Kontrolle des Dateibesitzers der Datei stehen, die aber
              nicht benutzt werden können, um beliebige Daten an das Terminal zu senden und daher
              unverändert gedruckt werden. Die Anweisungen %f, %h, %l, %p und %P werden maskiert.
              Diese Maskierung wird auf die gleiche Art durchgeführt wie  für  GNU-ls.  Dies  ist
              nicht  der  gleiche  Maskierungsmechanismus  wie  der, der für -ls und -fls benutzt
              wird. Falls Sie die Wahl haben, welches Format für die Ausgabe benutzt werden soll,
              ist  es  normalerweise  besser  »\0« als Endezeichen statt eines Zeilenvorschubs zu
              verwenden, da Dateinamen Leerzeichen  und  Zeilenvorschübe  enthalten  können.  Die
              Einstellung  der  Umgebungsvariablen LC_CTYPE wird benutzt, um zu bestimmen, welche
              Zeichen maskiert werden müssen.

       -print, -fprint
              Maskierung wird auf die gleiche Weise wie  für  -printf  und  -fprintf  gehandhabt.
              Falls  Sie  find  in einem Skript benutzen oder in einer Situation sind, in der die
              gefundenen Dateien beliebige Namen haben können, sollten  Sie  in  Betracht  ziehen
              -print0 anstelle von -print benutzen.

       Die  Aktionen  -ok  und -okdir geben den aktuellen Dateinamen unverändert aus. Dies könnte
       sich in einem späteren Release ändern.

STANDARDKONFORMITÄT

       Für größtmögliche  Konformität  zum  POSIX-Standard,  sollten  Sie  die  Umgebungsvariable
       POSIXLY_CORRECT   setzen.   Die  folgenden  Optionen  sind  im  POSIX-Standard  (IEEE  Std
       1003.1-2008, 2016 Edition) spezifiziert:

       -H     Diese Option wird unterstützt.

       -L     Diese Option wird unterstützt.

       -name  Diese  Option  wird  unterstützt,  aber  die  POSIX-Konformität   hängt   von   der
              POSIX-Konformität   der   Bibliotheksfunktion   fnmatch(3)   des   SYstems  ab.  Ab
              findutils-4.2.2 werden Shell-Metazeichen (zum Beispiel »*«, »?« oder »[]«) zu einem
              führenden  ».« passen, da dies die IEEE-PASC-Interpretation 126 erfordert. Dies ist
              eine Änderung gegenüber vorherigen Versionen der Findutils.

       -type  unterstützt. POSIX spezifiziert »b«, »c«, »d«, »l«,  »p«,  »f«  und  »s«.  GNU-Find
              unterstützt  außerdem  »D«,  das  eine Door (Spezialdatei für Prozesskommunikation)
              repräsentiert, wo diese vom Betriebsystem bereitgestellt wird. Desweiteren  erlaubt
              GNU find die Angabe mehrfacher Typen auf einmal in einer Kommata-getrennten Liste.

       -ok    unterstützt.   Die   Interpretation   der   Antwort   entspricht   den   »ja«-  und
              »nein«-Mustern, die durch  Setzen  der  Umgebungsvariablen  LC_MESSAGES  ausgewählt
              wurde.  Wenn die Umgebungsvariable POSIXLY_CORRECT gesetzt ist, werden diese Muster
              als  die  Systemdefinition  einer  positiven  (ja)  oder  negativen  (nein)  Anwort
              betrachtet.   Lesen   Sie   die   Dokumentation  des  Systems  für  nl_langinfo(3),
              insbesondere YESEXPR und NOEXPR. Wenn POSIXLY_CORRECT nicht gesetzt ist, werden die
              Muster von finds eigenem Meldungskatalog genommen.

       -newer unterstützt.  Falls  die  angegebene Datei ein symbolischer Link ist, wird er immer
              zurückverfolgt. Dies ist eine Änderung  gegenüber  dem  bisherigen  Verhalten,  das
              benutzt  wurde,  um die maßgebliche Zeit vom symbolischen Link zu nehmen; siehe den
              Abschnitt GESCHICHTE unterhalb.

       -perm  unterstützt. Falls die Umgebungsvariable POSIXLY_CORRECT nicht gesetzt ist,  werden
              einige  Modusargumente  (zum  Beispiel +a+x) unterstützt, die in POSIX nicht gültig
              sind, um abwärtskompatibel zu sein.

       Andere Primärausdrücke
              Die  Primärausdrücke  -atime,  -ctime,  -depth,  -exec,  -group,  -links,   -mtime,
              -nogroup,  -nouser,  -ok, -path, -print, -prune, -size, -user und -xdev werden alle
              unterstützt.

       Der POSIX-Standard spezifiziert Klammern »(«, »)«, Verneinung »!« und die Operatoren »AND«
       und »OR« (-a und -o).

       Alle  anderen  Operationen, Prädikate, Ausdrücke und so weiter sind Erweiterungen jenseits
       des POSIX-Standards. Viele dieser Erweiterungen sind jedoch nicht auf GNU-Find beschränkt.

       Der POSIX-Standard erfordert, dass find Schleifen entdeckt:

              Das Hilfswerkzeug find muss unendliche Schleifen entdecken, also das  Eintreten  in
              ein  bereits  vorher besuchtes Verzeichns, das ein Vorgänger der zuletzt gefundenen
              Datei ist. Wenn es eine Endlosschleife entdeckt, soll Find  eine  Diagnosenachricht
              auf  die  Standardfehlerausgabe  schreiben  und  entweder  seine  Position  in  der
              Hierarchie wiederherstellen oder sich beenden.

       GNU-find erfüllt diese Anforderungen. Die Link-Anzahl von Verzeichnissen, die Einträge mit
       harten  Links  auf einen Vorgänger enthalten, werden oft kleiner sein, als sie andernfalls
       sein  sollten.  Dies  kann   bedeuten,   dass   GNU-Find   manchmal   den   Besuch   eines
       Unterverzeichnisses wegoptimiert, das tatsächlich ein Link zu einem Vorgänger ist. Da find
       nicht tatsächlich in ein solches Unterverzeichnis eintritt, ist es erlaubt,  das  Ausgeben
       einer Diagnosenachricht zu verhindern. Dieses Verhalten könnte jedoch ein wenig verwirrend
       sein. Es ist unwahrscheinlich, dass sich tatsächlich jemand auf dieses Verhalten verlässt.
       Falls  die  Leaf-Optimierung  mit -noleaf ausgeschaltet wurde, wird der Verzeichniseintrag
       immer  untersucht  und  die  Diagnosenachricht  wird  an  geeigneter  Stelle   ausgegeben.
       Symbolische  Links  können nicht benutzt werden, um Dateisystemzyklen im eigentlichen Sinn
       zu  erzeugen,  aber  falls  die  Optionen  -L  oder  -follow  benutzt  werden,  wird  eine
       Diagnosenachricht  ausgegeben,  wenn  find in symbolischen Links auf eine Schleife trifft.
       Wie bei harten Links, die Schleifen enthalten, wird  die  Leaf-Optimierung  oft  bedeuten,
       dass  find  weiß,  dass  es stat() oder chdir() bei einem symbolischen Link nicht aufrufen
       muss, daher ist diese Diagnose häufig nicht nötig.

       Die Option -d wird unterstützt, um die Kompatibilität mit  verschiedenen  BSD-Systemen  zu
       wahren, Sie sollten aber stattdessen die POSIX-konforme Option -depth benutzen.

       Die  Umgebungsvariable  POSIXLY_CORRECT  beeinflusst  nicht das Verhalten der Tests -regex
       oder -iregex, da diese Tests nicht im POSIX-Standard spezifiziert sind.

UMGEBUNGSVARIABLEN

       LANG   Stellt einen Vorgabewert für die Internationalisierungsvariablen bereit, die  nicht
              gesetzt oder null sind.

       LC_ALL Falls  dies  auf  einen nicht leeren Zeichenkettenwert gesetzt ist, überschreibt es
              die Werte aller anderen Internationalisierungsvariablen.

       LC_COLLATE
              Der POSIX-Standard spezifiziert, dass diese Variable die  Mustersuche  beeinflusst,
              die  bei  der  Option  -name benutzt wird. GNU-Find benutzt die Bibliotheksfunktion
              fnmatch(3)  und   unterstützt   daher   LC_COLLATE   in   Abhängigkeitt   von   der
              Systembibliothek.  Diese  Variable  beeinflusst  außerdem  die  Interpretation  der
              Antwort auf  -ok,  während  die  Variable  LC_MESSAGES  das  Muster  auswählt,  das
              tatsächlich  benutzt  wird,  um  die  Antwort  auf  -ok zu interpretieren, wird die
              Interpretation  jeglicher  Ausdrücke  mit  Klammern  im  Muster  durch   LC_COLLATE
              beeinflusst.

       LC_CTYPE
              Diese  Variable  beeinflusst  die  Behandlung  von Zeichenklassen, die in regulären
              Ausdrücken ebenso wie im Test -name benutzt  wird,  falls  die  Bibliotheksfunktion
              fnmatch(3)  des  Systems  dies unterstützt. Diese Variable beeinflusst außerdem die
              Interpretation  jeglicher  Zeichenklassen,  die  in  regulären  Ausdrücken  benutzt
              werden,  um die Antwort auf die durch -ok angegebene Abfrage zu interpretieren. Die
              Umgebungsvariable LC_CTYPE wird außerdem beeinflussen,  welche  Zeichen  als  nicht
              abdruckbar   betrachtet  werden,  wenn  Dateinamen  ausgegeben  werden;  siehe  den
              Abschnitt UNÜBLICHE DATENAMEN.

       LC_MESSAGES
              bestimmt die Locale, die für internationalisierte Meldungen verwendet werden  soll.
              Falls die Umgebungsvariable POSIXLY_CORRECT gesetzt ist, bestimmt dies außerdem die
              Interpretation der Antwort auf die durch die Aktion -ok angegebene Abfrage.

       NLSPATH
              bestimmt den Speicherort der Internationalisierungs-Meldungskataloge.

       PATH   beeinflusst die Verzeichnisse, die durchsucht werden, um die  ausführbaren  Dateien
              zu finden, die durch -exec, -execdir, -ok und -okdir aufgerufen werden.

       POSIXLY_CORRECT
              bestimmt  die  von  -ls und -fls benutzte Blockgröße, Falls POSIXLY_CORRECT gesetzt
              ist, sind Blöcke Einheiten von 512 Byte. Andernfalls sind  es  Einheiten  von  1024
              Byte.

              Das  Setzen  dieser  Variable  schaltet  außerdem  standardmäßig  Warnmeldungen aus
              (sprich, es impliziert -nowarn),  da  POSIX  erfordert,  dass  unabhängig  von  der
              Ausgabe  von -ok alle Meldungen auf der Standardfehlerausgabe Diagnosen sind und in
              einem Rückgabewert ungleich null resultieren müssen.

              Wenn POSIXLY_CORRECT nicht  gesetzt  ist,  wird  -perm  +zzz  nur  wie  -perm  /zzz
              betrachtet,  falls  +zzz kein gültiger symbolischer Modus ist. Wenn POSIXLY_CORRECT
              gesetzt ist, werden solche Konstruktionen als Fehler betrachtet.

              Wenn POSIXLY_CORRECT gesetzt ist, hängt die Interpretation  der  Antwort  auf  die,
              durch  die Aktion -ok angegebene Abfrage, von den Meldungskatalogen des Systems ab,
              im Gegensatz zur Beachtung der eigenen Meldungsübersetzungen von find.

       TZ     beeinflusst die Zeitzone, die für einige zeitbezogene Formatanweisungen von -printf
              und -fprintf benutzt wird.

BEISPIELE

   Einfacher Ansatz mit »find|xargs«
       •      Dateien  mit  dem  Namen  core in oder unterhalb des Verzeichnisses /tmp suchen und
              diese löschen.

                  $ find /tmp -name core -type f -print | xargs /bin/rm -f

              Beachten  Sie,  dass  dies  nicht  korrekt  funktioniert,  falls   die   Dateinamen
              Zeilenvorschübe,   einfache   oder   doppelte  Anführungszeichen  oder  Leerzeichen
              enthalten.

   Sicherer Ansatz mit »find -print0 | xargs -0«
       •      sucht Dateien mit dem Namen core in oder  unterhalb  des  Verzeichnisses  /tmp  und
              löscht   diese.   Verarbeitet  Dateinamen  auf  eine  Weise,  in  der  Datei-  oder
              Verzeichnisnamen,  die  Dateinamen  einfache   oder   doppelte   Anführungszeichen,
              Leerzeichen oder Zeilenvorschübe enthalten, korrekt gehandhabt werden.

                  $ find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f

              Der  Test -name kommt in der Reihenfolge vor dem Test -type, um zu verhindern, dass
              stat(2) für jede Datei aufgerufen wird.

       Beachten Sie, dass  es  immer  noch  einen  Wettlauf  zwischen  der  Zeit,  die  find  zum
       Durchsuchen  des  Dateisystems und der Ausgabe der passenden Dateinamen einerseits und der
       Zeit, die der von xargs aufgerufene Prozess für die Arbeit mit der Datei braucht, gibt.

   Verarbeiten willkürlicher Startpunkte
       •      Nehmen  wir  an,  dass  ein  fiktives  Programm  namens  proggy  eine  sehr   lange
              NUL-getrennte  Dateiliste vorfiltert und erzeugt, diese als Startpunkte verarbeitet
              und alle regulären leeren Dateien darin sucht:

                  $ proggy | find -files0-from - -maxdepth 0 -type f -empty

              Durch `-files0-from -` werden die Namen der  Startpunkte  aus  der  Standardeingabe
              gelesen,  das heißt, aus der Pipe. Hierbei stellt -maxdepth 0 sicher, dass Einträge
              ausdrücklich ohne Absteigen in Unterverzeichnisse ausgewertet werden  (falls  einer
              der Startpunkte ein Verzeichnis ist).

   Ausführen eines Befehls für jede DateiDatei für jede Datei in oder unterhalb des aktuellen Verzeichnisses ausführen.

                  $ find . -type f -exec Datei '{}' \;

              Beachten Sie, dass Klammern in einfache Anführungszeichen eingeschlossen werden, um
              sie vor einer  Interpretation  als  Shell-Skript-Zeichensetzung  zu  schützen.  Der
              Strichpunkt  wird  gleichermaßen  durch  die  Benutzung  des Rückwärtsschrägstrichs
              geschützt, da einfache Anführungszeichen in diesem Fall  ebenfalls  benutzt  werden
              könnten.

       In  vielen  Fällen  könnten Sie die Syntax »-exec   oder besser noch »-execdir   aus
       Leistungs- und Sicherheitsgründen bevorzugen.

   Einmaliges Durchlaufen des Dateisystems - für 2 verschiedene Aktionen
       •      das Dateisystem nur einmal durchlaufen, set-user-ID-Dateien  und  Verzeichnisse  in
              /root/suid.txt und große Dateien in /root/big.txt auflisten.

                  $ find / \
                      \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \
                      \( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)

              Dieses  Beispiel  verwendet  das  Zeilenfortführungszeichen »\« auf den ersten zwei
              Zeilen, um die Shell anzuweisen, mit dem Einlesen  des  Befehls  auf  der  nächsten
              Zeile fortzufahren.

   Dateisuche anhand des Alters
       •      Nach  Dateien  in  Ihrem  Home-Verzeichnis  suchen,  die  in den letzten 24 Stunden
              geändert wurden.

                  $ find $HOME -mtime 0

              Dieser Befehl funktioniert auf diese Art, weil die Zeit, seit  jede  Datei  zuletzt
              verändert  wurde,  durch  24  Stunden  geteilt  und  der  Rest verworfen wird. Dies
              bedeutet, dass eine Datei, um -mtime 0 zu  entsprechen,  eine  Veränderung  in  der
              Vergangenheit haben muss, die weniger als 24 Stunden zurückliegt.

   Dateisuche anhand der Zugriffsrechte
       •      sucht Dateien, die ausführbar, aber nicht lesbar sind

                  $ find /sbin /usr/sbin -executable \! -readable -print

       •      Nach Dateien suchen, die Lese- und Schreibrechte für ihren Benutzer und ihre Gruppe
              haben, aber von anderen Benutzern gelesen, aber nicht geschrieben werden können.

                  $ find . -perm 664

              Dateien, die diesem Kriterium entsprechen, aber andere  Rechte-Bits  gesetzt  haben
              (zum Beispiel, wenn jemand die Datei ausführen kann), werden nicht passen.

       •      Nach Dateien suchen, die Lese- und Schreibrechte für ihren Benutzer und ihre Gruppe
              haben und die von anderen Benutzern gelesen werden können, ohne  das  Vorhandensein
              irgendwelcher  zusätzlicher  Rechte-Bits (zum Beispiel des Bits für Ausführbarkeit)
              zu betrachten.

                  $ find . -perm -664

              Dies wird beispielsweise auf eine Datei mit dem Modus 0777 passen.

       •      sucht nach Dateien, die für irgendjemanden schreibbar sind  (ihren  Besitzer,  ihre
              Gruppe oder irgendjemand anderes).

                  $ find . -perm /222

       •      Nach Dateien suchen, die für ihren Besitzer oder ihre Gruppe schreibbar sind.

                  $ find . -perm /220
                  $ find . -perm /u+w,g+w
                  $ find . -perm /u=w,g=w

              Diese drei Befehle tun alle dasselbe, aber der Erste benutzt die oktale Darstellung
              des Dateimodus und die beiden anderen benutzen die symbolische  Form.  Die  Dateien
              müssen  nicht  sowohl  für Besitzer und Gruppe schreibbar sein, um zu passen; eines
              genügt.

       •      Nach Dateien suchen, die für ihren Besitzer oder ihre Gruppe schreibbar sind.

                  $ find . -perm -220
                  $ find . -perm -g+w,u+w

              Beide Befehle führen das Gleiche aus.

       •      Eine ausgeklügeltere Suche nach Berechtigungen.

                  $ find . -perm -444 -perm /222 \! -perm /111
                  $ find . -perm -a+r -perm /a+w \! -perm /a+x

              Diese beiden Befehle suchen nach Dateien, die für jedermann lesbar sind (-perm -444
              oder -perm -a+r), mindestens ein gesetztes Schreib-Bit haben (-perm /222 oder -perm
              /a+w), aber für niemanden ausführbar sind (! -perm  /111  beziehungsweise  !  -perm
              /a+x).

   »Pruning« - Dateien und Verzeichnisse auslassen
       •      Dieser Befehl kopiert den Inhalt aus dem /Quellverzeichnis in das /Zielverzeichnis,
              lässt aber Dateien und Verzeichnisse mit Namen .snapshot aus (und alles,  was  sich
              darin  befindet).  Er lässt außerdem alle Dateien und Verzeichnisse aus, deren Name
              auf ~ endet, nicht jedoch ihren Inhalt.

                  $ cd /Quellverzeichnis
                  $ find . -name .snapshot -prune -o \( \! -name '*~' -print0 \) \
                      | cpio -pmd0 /dest-dir

              Die Konstruktion -prune -o \(  -print0 \)  ist  ziemlich  gebräuchlich.  Die  Idee
              besteht  hier  darin, dass der Ausdruck vor -prune auf die Dinge passt, die gekürzt
              werden. Die Aktion -prune selbst gibt jedoch wahr zurück, daher stellt das folgende
              -o  sicher,  dass  die rechte Seite nur für die Verzeichnisse ausgewertet wird, die
              nicht gekürzt wurden (der Inhalt der  gekürzten  Verzeichnisse  wird  nicht  einmal
              besucht  und  ist  daher irrelevant). Der Ausdruck auf der rechten Seite von -o ist
              nur der Übersichtlichkeit halber in Klammern. Dies hebt  hervor,  dass  die  Aktion
              -print0 nur den Platz von Dingen einnimmt, auf die -prune nicht angewandt wurde. Da
              die Standardbedingung »and« zwischen  Tests  fester  verbindet  als  -o,  ist  dies
              sowieso die Vorgabe, aber die Klammern helfen zu zeigen, was passiert.

       •      Beim  folgenden  gegebenen  Verzeichnis  mit  Projekten  und  den damit verbundenen
              Versionsverwaltungsverzeichnissen wird eine effiziente Suche nach den  Wurzeln  der
              Projekte durchgeführt:

                  $ find repo/ \
                      \( -exec test -d '{}/.svn' \; \
                      -or -exec test -d '{}/.git' \; \
                      -or -exec test -d '{}/CVS' \; \
                      \) -print -prune

              Beispielausgabe:

                  repo/project1/CVS
                  repo/gnu/project2/.svn
                  repo/gnu/project3/.svn
                  repo/gnu/project3/src/.svn
                  repo/project4/.git

              In  diesem  Beispiel  verhindert  -prune  unnötiges Absteigen in Verzeichnisse, die
              bereits entdeckt wurden (zum Beispiel wird project3/src  nicht  durchsucht,  da  es
              bereits   in   project3/.svn   gefunden   wurde),   aber  es  stellt  sicher,  dass
              Geschwisterverzeichnisse (project2 und project3) gefunden werden.

   Weitere nützliche Beispiele
       •      Nach verschiedenen Dateitypen suchen

                  $ find /tmp -type f,d,l

              sucht nach Dateien, Verzeichnissen und  symbolischen  Links  im  Verzeichnis  /tmp.
              Dabei  werden die Typen als Komma-separierte Liste übergeben (GNU-Erweiterung), was
              ansonsten äquivalent zu dem folgenden längeren, portableren Ausdruck ist:

                  $ find /tmp \( -type f -o -type d -o -type l \)

       •      Nach Dateien mit dem Namen Nadel suchen und sofort anhalten, wenn der erste Treffer
              gefunden wird:

                  $ find / -name Nadel -print -quit

       •      Darstellung,  wie die Formatanweisungen %f und %h für die -printf-Aktion in einigen
              Grenzfällen interpretiert wird. Hier ist ein Beispiel,  das  auch  einige  Ausgaben
              enthält.

                  $ find . .. / /tmp /tmp/TRACE compile compile/64/tests/find -maxdepth 0 -printf '[%h][%f]\n'
                  [.][.]
                  [.][..]
                  [][/]
                  [][tmp]
                  [/tmp][TRACE]
                  [.][compile]
                  [compile/64/tests][find]

EXIT-STATUS

       find  endet  mit Status Null, falls alle Dateien erfolgreich verarbeitet wurden und größer
       als Null, falls ein Fehler aufgetreten ist. Dies ist  absichtlich  eine  sehr  weitgehende
       Beschreibung,  aber  falls  der Rückgabewert ungleich Null ist, sollten Sie sich nicht auf
       die Richtigkeit des Ergebnisses von find verlassen.

       Wenn ein  Fehler  auftritt,  stoppt  find  unmittelbar,  ohne  alle  angegebenen  Aktionen
       abzuschließen.  Zum  Beispiel  werden  einige der Startpunkte nicht untersucht oder einige
       ausstehenden  Programmaufrufe  für  -exec  {} +   oder   -execdir  {} +   werden   nicht
       ausgeführt.

GESCHICHTE

       Ab  findutils-4.2.2  stimmen  Shell-Metazeichen  (»*«, »?« oder »[]« zum Beispiel), die in
       Mustern für  Dateinamen  verwendet  werden,  mit  einem  führenden  ».«  überein,  da  die
       Interpretation 126 von IEEE POSIX dies erfordert.

       Ab findutils-4.3.3 passt -perm /000 nun auf alle Dateien statt auf keine.

       Zeitstempel in Nanosekundenauflösung wurden in findutils-4.3.3 implementiert.

       Ab  findutils-4.3.11  setzt  die  Aktion  -delete den Rückgabewert von find auf einen Wert
       ungleich null, wenn sie fehlschlägt. find wird jedoch nicht sofort beendet.  Vorher  wurde
       der Rückgabewert von find nicht durch ein Scheitern von -delete beeinflusst.

       Funktion               Hinzugefügt in   Erscheint auch in
       -files0-from           4.9.0
       -newerXY               4.3.3            BSD
       -D                     4.3.1
       -O                     4.3.1
       -readable              4.3.0
       -writable              4.3.0
       -executable            4.3.0
       -regextype             4.2.24
       -exec … +              4.2.12           POSIX
       -execdir               4.2.12           BSD
       -okdir                 4.2.12
       -samefile              4.2.11
       -H                     4.2.5            POSIX
       -L                     4.2.5            POSIX
       -P                     4.2.5            BSD
       -delete                4.2.3
       -quit                  4.2.3
       -d                     4.2.3            BSD
       -wholename             4.2.0
       -iwholename            4.2.0
       -ignore_readdir_race   4.2.0
       -fls                   4.0
       -ilname                3.8
       -iname                 3.8
       -ipath                 3.8
       -iregex                3.8

       Die  Syntax -perm +MODE wurde in findutils-4.5.12 zugunsten von -perm /MODUS entfernt. Die
       Syntax +MODE wurde als veraltet  markiert,  da  findutils-4.2.21  bereits  im  Jahre  2005
       veröffentlicht wurde.

KEINE FEHLER

   Überraschungen bei Operatorenvorrangsregeln
       Der  Befehl find . -name afile -o -name bfile -print gibt niemals afile aus, da der Befehl
       tatsächlich äquivalent zu find . -name afile -o \( -name bfile -a -print  \)  ist.  Denken
       Sie  daran,  dass  -a Vorrang vor -o hat und dass, sofern kein Operator zwischen den Tests
       angegeben ist, -a angenommen wird.
                                                         q
   Fehlermeldungen “Der Pfad muss vor dem Ausdruck stehen
       $ find . -name *.c -print
       find: Der Pfad muss vor dem Ausdruck stehen
       find: Mögliches nichtgeschütztes Muster nach dem Prädikaten »-name«?

       Dies passiert, wenn die Shell das Muster *.c auf mehr als einen im  aktuellen  Verzeichnis
       existierenden  Dateinamen  expandieren  könnte  und  die  entstehenden  Dateinamen  in der
       Befehlszeile wie folgt an find weitergibt:
       find . -name frcode.c locate.c word_io.c -print
       Dieser Befehl wird natürlich nicht funktionieren, da das  Prädikat  -name  nur  genau  ein
       Muster  als  Argument  erlaubt. Statt auf diese Art zu arbeiten, sollten Sie das Muster in
       Anführungszeichen einschließen oder den Platzhalter schützen, und damit find erlauben, das
       Muster  mit  dem Platzhalter während der Suche auf passende Dateinamen zu verwenden, statt
       die Dateinamen durch die Eltern-Shell zu expandieren:
       $ find . -name '*.c' -print
       $ find . -name \*.c -print

FEHLER

       Es gibt Sicherheitsprobleme,  die  dem  durch  den  POSIX-Standard  für  find  definierten
       Verhalten  innewohnen  und die daher nicht behoben werden können. Die Aktion -exec ist zum
       Beispiel von Natur aus unsicher und es sollte stattdessen -execdir verwendet werden.

       Die Umgebungsvariable LC_COLLATE hat keinen Einfluss auf die Aktion -ok.

FEHLER MELDEN

       Onlinehilfe für GNU findutils: <https://www.gnu.org/software/findutils/#get-help>
       Melden Sie Fehler in der Übersetzung an das deutschsprachige  Team  beim  GNU  Translation
       Project ⟨https://translationproject.org/team/de.html⟩.

       Melden  Sie  alle  anderen  Fehler  über  das  Formular  im Fehlererfassungssystem bei GNU
       Savannah:
              <https://savannah.gnu.org/bugs/?group=findutils>
       Allgemeine  Themen  zum  GNU-Findutils-Paket  werden  in  der  Mailingliste  bug-findutils
       diskutiert:
              <https://lists.gnu.org/mailman/listinfo/bug-findutils>

COPYRIGHT

       Copyright  ©  1990-2022  Free  Software  Foundation, Inc. Lizenz GPLv3+: GNU GPL Version 3
       ⟨https://gnu.org/licenses/gpl.html⟩ oder neuer.
       Dies ist freie Software: Sie können sie verändern und weitergeben. Es gibt KEINE GARANTIE,
       soweit gesetzlich zulässig.

SIEHE AUCH

       chmod(1),   locate(1),   ls(1),   updatedb(1),   xargs(1),   lstat(2),  stat(2),  ctime(3)
       fnmatch(3), printf(3), strftime(3), locatedb(5), regex(7)

       Die vollständige Dokumentation ist auf <https://www.gnu.org/software/findutils/find>
       oder lokal via: info find

ÜBERSETZUNG

       Die deutsche Übersetzung dieser Handbuchseite wurde von Chris Leick  <c.leick@vollbio.de>,
       Mario  Blättermann <mario.blaettermann@gmail.com>, Dr. Tobias Quathamer <toddy@debian.org>
       und Helge Kreutzmann <debian@helgefjell.de> erstellt.

       Diese Übersetzung ist Freie Dokumentation;  lesen  Sie  die  GNU  General  Public  License
       Version  3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ oder neuer bezüglich der Copyright-
       Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-
       Mail an die Mailingliste der Übersetzer ⟨debian-l10n-german@lists.debian.org⟩.

                                                                                          FIND(1)