Provided by: manpages-de_2.16-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  kann  ein  doppeltes
       Minuszeichen -- benutzt werden, um zu signalisieren, dass die verbleibenden Argumente keine Optionen sind
       (obwohl  es  im  Allgemeinen sicherer ist, wenn Sie dafür sorgen, dass alle Startpunkte entweder mit »./«
       oder »/« beginnen, falls Sie Platzhalter in der Liste der Startpunkte verwenden).

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

       -L     symbolischen Links folgen. Wenn find eine Datei untersucht oder Informationen über diese  ausgibt,
              dann  müssen  die Informationen der Datei verwendet werden, auf die der symbolische Link verweist,
              nicht die des Links selbst (es sei denn, der symbolische Link ist kaputt oder find  nicht  in  der
              Lage,  die  Datei zu untersuchen, auf die der Link zeigt). Die Verwendung dieser Option impliziert
              die Option -noleaf. Wenn Sie später die Option -P verwenden, wird -noleaf immer noch  Auswirkungen
              haben.  Wenn  -L  aktiv  ist  und  find  während  seiner  Suche  einen  symbolischen Link zu einem
              Unterverzeichnis vorfindet, wird das Unterverzeichnis durchsucht, auf  das  der  symbolische  Link
              zeigt.

              Wenn  die  Option -L in Kraft ist, wird das Prädikat -type immer auf den Typ der Datei angewendet,
              auf die ein symbolischer Link zeigt, anstatt auf den Link selbst (es  sei  denn,  der  symbolische
              Link  ist  kaputt).  Aktionen  die  symbolische Links zerstören, während find ausgeführt wird (zum
              Beispiel -delete), können verwirrendes Verhalten verursachen. Die Verwendung von -L bewirkt,  dass
              die Prädikate -lname und -ilname immer falsch zurückliefern.

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

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

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

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

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

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

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

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

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

              search durchläuft den Verzeichnisbaum ausführlich.

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

              tree   zeigt den Ausdrucksbaum in seiner originalen und optimierten Form.

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

              help   erklärt die Debugging-Optionen.

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

              0      entspricht der Optimierungsstufe 1

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

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

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

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

AUSDRUCK

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

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

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

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

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

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

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

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

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

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

       -follow
              missbilligt; verwenden Sie stattdessen die Option -L; dereferenziert symbolische Links; impliziert
              -noleaf.  Die  Option  -follow  beeinflusst  nur  jene  Tests,  die  nach ihr auf der Befehlszeile
              erscheinen. Wenn die Option -H oder -L nicht angegeben wird, ändert die Position von  -follow  das
              Verhalten  des  Prädikats  -newer.  Alle  Dateien, die als Argumente von -newer aufgezählt werden,
              werden dereferenziert, wenn es sich bei ihnen um symbolische Links  handelt.  Das  gilt  auch  für
              -anewer  und  -cnewer. Ähnlich wird das Prädikat -type immer auf den Typ der Datei angewendet, auf
              den der symbolische Link zeigt und nicht auf den Link selbst. Die Verwendung von -follow  hat  zur
              Folge, dass die Prädikate -lname und -ilname immer falsch zurückliefern.

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

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

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

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

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

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

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

       Numerische Argumente können angegeben werden als

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

       -n     für kleiner als n,

       n      für genau n

       -amin n,
              Auf die Datei wurde zuletzt vor 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  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 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 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
              Benutzerkennzahl (oder Root-Squashing) nutzen, da viele Systeme access(2) im  Kernel  des  Clients
              implementieren  und  daher  von den Abbildungsinformationen der Benutzerkennzahlen 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 Gruppenkennzahl der Datei ist n.

       -group gname
              Datei gehört der Gruppe Gruppenname (numerische Gruppenkennzahlen 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
              Datei  hat  die  Inode-Nummer 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 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 n Minuten verändert.

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

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

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

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

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

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

       -nogroup
              Der numerische Gruppenkennzahl der Datei entspricht keiner Gruppe.

       -nouser
              Die numerische Benutzerkennzahl 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  Benutzerkennzahl  (oder  Root-Squashing)  nutzen,  da  viele  Systeme
              access(2)  im  Kernel  des  Clients  implementieren  und daher von den Abbildungsinformationen der
              Benutzerkennzahlen keinen Gebrauch machen können, die auf dem Server gehalten werden.

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

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

       -size n[cwbkMG]
              Datei belegt 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 Benutzerkennzahl der Datei ist n.

       -used n
              Auf die Datei ist n Tage nach ihrer letzten Statusänderung zugegriffen worden.

       -user Benutzername
              Die Datei gehört dem Anwender Benutzername (numerische Benutzerkennzahl 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  Benutzerkennzahl  (oder  Root-Squashing)  nutzen,  da  viele  Systeme
              access(2)  im  Kernel  des  Clients  implementieren  und daher von den Abbildungsinformationen der
              Benutzerkennzahlen keinen Gebrauch machen können, die auf dem Server gehalten werden.

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

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

   AKTIONEN
       -delete
              Dateien löschen; wahr, falls erfolgreich entfernt. Falls  das  Entfernen  fehlschlägt,  wird  eine
              Fehlermeldung  ausgegeben. Falls -delete fehlschlägt, wird der Rückgabewert von find ungleich null
              sein (wenn es letztendlich beendet wird). Das Benutzen von -delete schaltet automatisch die Option
              -depth ein.

              Warnungen: Vergessen Sie nicht, dass die Find-Befehlszeile  als  ein  Ausdruck  ausgewertet  wird.
              Daher  wird  das Voranstellen von -delete  dazu führen, dass find versucht alles was Sie unterhalb
              des Startpunkts angegeben haben zu löschen. Wenn Sie eine find-Befehlszeile testen, die Sie später
              beabsichtigen  mit  -delete  zu  nutzen,  sollten  Sie  explizit  -depth   angeben,   um   spätere
              Überraschungen zu vermeiden. Da -delete -depth impliziert, können Sie sinnvollerweise nicht -prune
              und -delete zusammen benutzen.

              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 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  diese  Zeichenkette  sollte  (wenn  find  aus einer Shell heraus
              aufgerufen wird) in Anführungszeichen gesetzt werden (beispielsweise '{}'), 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. 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.

              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 Nachrichtenü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.

       -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«  angegeben  werden.  Bitte
              beachten  Sie,  dass  viele Felder mit %s statt mit %d ausgegeben werden. Dies kann bedeuten, dass
              der Schalter nicht wie erwartet funktioniert. Dies  bedeutet  auch,  dass  die  Option  »-«  nicht
              funktioniert  (er  erzwingt,  dass Felder linksbündig ausgerichtet werden). Anders als -print fügt
              -printf keinen Zeilenvorschub an das Ende der Zeichenkette. Die Anweisungen sind:

              \a     Alarmton

              \b     Rückschritt

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

              \f     Seitenvorschub

              \n     Zeilenumbruch

              \r     Wagenrücklauf

              \t     horizontaler Tabulator

              \v     vertikaler Tabulator

              \0     ASCII-Code 0

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

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

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

              %%     das Prozentzeichen selbst

              %a     die Zeit des letzten Zugriffs auf die Datei, zurückgegeben im Format der C-Funktion »ctime«

              %Ak    die  Zeit  des letzten Zugriffs auf die Datei, angegeben durch k. Das ist entweder »@« oder
                     eine Anweisung für die C-Funktion »strftime«. Die möglichen Werte für  k  sind  nachfolgend
                     aufgeführt;  einige  davon  sind  möglicherweise  aufgrund  von  Unterschieden zwischen den
                     Systemen nicht auf allen Systemen in »strftime« 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)

                     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.

              %c     das  Datum,  an  dem  zum  letzten  Mal  der Status der Datei geändert wurde, im Format der
                     C-Funktion »ctime«

              %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     der  Name  der  Datei,  bei  dem  die voranstehenden Verzeichnisse entfernt wurden (nur das
                     letzte Element)

              %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 Gruppenkennzahl, wenn die  Gruppe  keinen
                     Namen hat

              %G     die numerische Gruppenkennzahl der Datei

              %h     voranstehende  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.

              %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 C-»ctime« 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 Benutzerkennzahl, falls der Benutzer keinen
                     Namen hat.

              %U     numerische Benutzerkennzahl 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  sofort  beenden.  Es werden keine laufenden Kindprozesse mehr übrig gelassen, aber es werden keine
              weiteren auf der Befehlzeile angegebenen Pfade mehr verarbeitet. Beispielsweise wird find /tmp/foo
              /tmp/bar -print -quit nur /tmp/foo ausgeben. Alle aufzurufenen Befehlszeilen die mit -execdir  {}
              + gebildet wurden, werden aufgerufen bevor find beendet wird. Der Rückgabewert  könnte  null  oder
              nicht null sein, je nachdem ob bereits ein Fehler aufgetreten ist.

   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 festgelegt 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  postiven  (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 Nachrichtenkatalog 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),  die  in  POSIX   nicht   gültig   sind   unterstützt,   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,
       -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 Bibiliotheksfunktion  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 Nachrichten 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-Nachrichtenkataloge.

       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 implziert
              -nowarn), da POSIX erfordert, dass unabhängig von der Ausgabe von -ok, alle  Nachrichten  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 Nachrichtenkatalogen des Systems ab, im  Gegensatz  zur  Beachtung
              der eigenen Nachrichtenübersetzungen von find.

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

BEISPIELE

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

       sucht Dateien mit dem Namen core in oder unterhalb des Verzeichnisses /tmp  und  löscht  diese.  Beachten
       Sie,  dass  dies nicht korrekt funktioniert, falls die Dateinamen Zeilenvorschübe, einfache oder doppelte
       Anführungszeichen oder Leerzeichen enthalten.

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

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

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

       führt »file« für jede Datei in oder unterhalb  des  aktuellen  Verzeichnisses  aus.  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.

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

       das Dateisystem nur einmal durchlaufen, Setuid-Dateien und  Verzeichnisse  in  /root/suid.txt  und  große
       Dateien in /root/big.txt auflisten.

       find $HOME -mtime 0

       sucht  nach  Dateien  in  Ihrem  Home-Verzeichnis,  die in den letzten 24 Stunden geändert wurden. 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.

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

       sucht Dateien, die ausführbar, aber nicht lesbar sind

       find . -perm 664

       sucht nach Dateien, die Lese- und Schreibrechte für ihren  Benutzer  und  ihre  Gruppe  haben,  aber  von
       anderen  Benutzern  gelesen,  aber  nicht  geschrieben  werden  können.  Dateien,  die  diesem  Kriterium
       entsprechen, aber andere Rechte-Bits gesetzt haben (zum Beispiel, wenn jemand die Datei ausführen  kann),
       werden nicht passen.

       find . -perm -664

       sucht  nach  Dateien,  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. Dies wird beispielsweise auf eine Datei mit dem
       Modus 777 passen.

       find . -perm /222

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

       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. Diese Befehle suchen alle nach Dateien, die entweder
       durch ihren Besitzer oder ihre Gruppe schreibbar sind. Die Dateien müssen nicht sowohl für  Besitzer  und
       Gruppe schreibbar sein, um zu passen; eines genügt.

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

       Beide  Befehle  tun  dasselbe;  sie  suchen nach Dateien, die sowohl für ihren Besitzer als auch für ihre
       Gruppe schreibbar sind.

       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).

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

       Dieser Befehl kopiert den Inhalt von /source-dir nach /dest-dir, 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. 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.

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

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

       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.

       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 \)

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.

SIEHE AUCH

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

       Die  vollständige  Dokumentation  für  find wird als Texinfo-Handbuch gepflegt. Wenn die Befehle info und
       find korrekt auf Ihrem Syste installiert sind, erhalten Sie mit info find Zugriff  auf  das  vollständige
       Handbuch.

GESCHICHTE

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

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

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

       Ab findutils-4.3.11 setzt die Aktion -delete den Rückgabewert von find auf einen Wert ungleich null, wenn
       sie  fehlschlägt.  find  wird  jedoch  nicht sofort beendet. Vorher wurde der Rückgabewert von find nicht
       durch ein Scheitern von -delete beeinflusst.
       Funktion               Hinzugefügt in   Erscheint auch in
       -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 festgelegt 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

COPYRIGHT

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

FEHLER

       Es  gibt dort Sicherheitslücken, die dem Verhalten anhaften, das der POSIX-Standard für find spezifiziert
       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. Bitte lesen Sie den Abschnitt Finding Files, um weitere
       Informationen zu erhalten.

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

       Der   beste   Weg,   einen   Fehler   zu    melden,    ist    die    Benutzung    des    Formulars    auf
       https://savannah.gnu.org/bugs/?group=findutils.  Der  Grund  dafür liegt darin, dass Sie den Prozess, wie
       das Problem behoben wird, verfolgen können. Andere Kommentare über find(1) und über das  Paket  Findutils
       im  Allgemeinen  können  an  die Mailingliste bug-findutils gesandt werden. Um diese Liste zu abonnieren,
       senden Sie eine E-Mail auf Englisch an bug-findutils-request@gnu.org.

Ü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 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
       <debian-l10n-german@lists.debian.org>.

                                                                                                         FIND(1)