plucky (1) find.1.gz

Provided by: manpages-de_4.25.1-1_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.

              Die  durch  den  Kosten-basierten  Optimierer  durchgeführte  Neusortierung  der  Aktionen kann zu
              benutzersichtbarer Verhaltensänderung führen. Beispielsweise  sind  die  Prädikate  -readable  und
              -empty  empfindlich  bezüglich  Neusortierung.  Wenn  sie  in  der  Reihenfolge  -empty  -readable
              ausgeführt werden, wird eine Fehlermeldung für nicht lesbare Verzeichnisse ausgegeben.  Falls  sie
              in  der  Reihenfolge -readable -empty ausgeführt werden, wird keine Fehlermeldung ausgegeben. Dies
              ist  der  Grund   dafür,   dass   bei   der   standardmäßigen   Optimierungsstufe   keine   solche
              Aktions-Neusortierung durchgeführt wird.

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. Wenn Sie diese Option nicht verwenden, verhält
              sich Find so, als ob der Typ emacs für den regulären Ausdruck angegeben wäre.

       -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-Nullbyte-Zeichen getrennt werden. Zwei
              aufeinanderfolgende Nullbyte-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 der Dateinamen entfernt sind, sollte Muster keine Schrägstrich  enthalten,
              da  »-name  a/b«  niemals  auf  etwas  passt  (und  wahrscheinlich  möchten  Sie stattdessen -path
              verwenden). Eine Ausnahme hiervon ist, wenn  Sie  nur  einen  Schrägstrich  als  Muster  verwenden
              (»-name /«), da dies eine gültige Zeichenkette zum Vergleich mit dem Wurzelverzeichnis »/« ist (da
              »/« der Basisname von »/« ist). Es wird eine Warnung ausgegeben, falls Sie versuchen,  ein  Muster
              zu   übergeben,  das  ein  Schrägstrich  und  etwas  dazu  enthält,  außer  die  Umgebungsvariable
              POSIXLY_CORRECT ist gesetzt oder die Option -nowarn wird verwandt.

              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, 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. Falls
              ein symbolischer Link gebrochen ist (da das Ziel, auf das er zeigt, nicht existiert oder der  Link
              auf sich selbst zeigt), wird sich -xtype so wie -type verhalten.

       -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-Nullbyte

              \\     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, durch Nullbytes 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 Datei
       •      Den Befehl file für jede Datei in oder unterhalb des aktuellen Verzeichnisses ausführen.

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

              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

       Ein Programm find erschien in Version 5 Unix als Teil des Projekts »Programmer's Workbench« und wurde von
       Dick  Haight  geschrieben. Doug McIlroys A Research UNIX Reader: Annotated Excerpts from the Programmer’s
       Manual,  1971-1986  stellt  einige   zusätzliche   Details   bereit,   Sie   können   es   online   unter
       <https://www.cs.dartmouth.edu/~doug/reader.pdf> lesen.

       GNU  find  wurde  ursprünglich  von Eric Decker geschrieben, Erweiterungen kamen von David MacKenzie, Jay
       Plett und Tim Wood. Die Idee zu find -print0 und xargs -0 kam von Dan Bernstein.

KOMPATIBILITÄT

       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 Programmü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   ©   1990–2024   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)