focal (1) find.1.gz

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