Provided by: manpages-de_2.5-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 die
       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.

              help   erklärt die Debugging-Optionen.

              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.

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

       Wenn  der  gesamte  Ausdruck  keine andere Aktion als -prune oder -print enthält, wird für
       alle Dateien, für welche der Ausdruck »wahr« ergibt, die Aktion -print durchgeführt.

       Die Aktion -delete wirkt auch wie eine Option (das 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.

       -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 Datei
              Auf  die  Datei  ist  zugegriffen  worden,  nachdem Datei das letzten Mal verändert
              wurde. Falls Datei ein symbolischer Link ist und die Optionen -H oder -L  in  Kraft
              sind, wird immer die Zugriffszeit 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 Datei
              Der Status der Datei wurde verändert, seit Datei zum letzten  Mal  geändert  wurde.
              Falls  Datei  ein  symbolischer Link ist und die Optionen -H oder -L in Kraft sind,
              wird immer die Änderungszeitzeit des Status 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; ein  Beispiel  finden  Sie  in  der  Beschreibung  von  -path.
              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 Datei
              Datei  ist später verändert worden als Datei. Falls Datei ein symbolischer Link ist
              und die Optionen -H oder -L in Kraft sind,  wird  immer  die  Veränderungszeit  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"
              einen  Eintrag  für  ein  Verzeichnis  mit Namen »./src/misc« ausgeben (falls eines
              exisitert). Benutzen Sie -prune, um einen  ganzen  Verzeichnisbaum  zu  ignorieren,
              anstatt  jede  Datei  im  Baum  zu  überprüfen.  Um  beispielsweise das Verzeichnis
              »src/emacs« und alle Dateien und Verzeichnisse darin zu überspringen und die  Namen
              der anderen gefundenen Dateien auszugeben, versuchen Sie Folgendes:
                        find . -path ./src/emacs -prune -o -print
              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)

              Zur  Ermittlung  der  Größe  werden keine indirekten Blöcke gezählt, aber Blöcke in
              Datei mit Löchern (Sparse-Dateien), die nicht wirklich reserviert  sind.  Vergessen
              Sie  nicht, dass die Formatbezeichner »%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.

       -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  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  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  1K-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
              »%«-Direktiven.  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 Direktiven 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  Direktive  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 Bezeichner %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 1K-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
                     Direktive 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.  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

              %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  Direktiven  %m  und  %d  unterstützen  die  Schalter  # , 0 und +, die anderen
              Direktiven  jedoch  nicht,  selbst  wenn  Nummern  ausgegeben  werden.   Numerische
              Direktiven,  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, nicht darin hinabsteigen.  Falls  -depth
              angegeben  ist,  falsch;  kein  Effekt.  Da  -delete  -depth impliziert, können Sie
              sinnvollerweise -prune and -delete nicht zusammen benutzen.

       -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 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  Direktive  benutzt  wird.  Die
              Direktiven %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  Direktiven  %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 Direktiven %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 Formatdirektiven  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 \)

RÜCKGABEWERT

       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-2018 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>, Helge Kreutzmann  <debian@helgefjell.de>
       und Dr. Tobias Quathamer <toddy@debian.org> 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)