Provided by: manpages-fr_4.27.0-1_all bug

NOM

       find – Rechercher des fichiers dans une hiérarchie de répertoires

SYNOPSIS

       find [-H] [-L] [-P] [-D options_débogage] [-Oniveau] [point-départ...] [expression]

DESCRIPTION

       Cette  page  de  manuel  documente  la  version  GNU  de  find.  GNU  find parcourt les arborescences des
       répertoires ayant pour racine chaque point de départ donné en évaluant l'expression de gauche  à  droite,
       en  suivant  les  règles de priorité décrites dans la section OPÉRATEURS, jusqu'à l'obtention du résultat
       (par exemple la partie gauche est fausse pour un opérateur et, vraie pour un  opérateur  ou),  puis  find
       passe au nom de fichier suivant. Si aucun point de départ n'est spécifié, « . » est présumé.

       Si  vous  utilisez  find dans un environnement dans lequel la sécurité est importante (si vous l'utilisez
       par exemple pour faire des recherches dans des répertoires qui sont accessibles en  écriture  à  d'autres
       utilisateurs), vous devriez lire le chapitre « Security Considerations » de la documentation de findutils
       qui  s'appelle  Finding Files et qui est fournie par findutils. Ce document contient bien plus de détails
       et d'explications que cette page de manuel et peut donc être considéré comme  une  source  d'informations
       plus utile.

OPTIONS

       Les  options  -H,  -L et -P contrôlent le traitement des liens symboliques. Les paramètres de la ligne de
       commande qui les suivent sont considérés comme des fichiers ou des répertoires à examiner et ce  jusqu'au
       premier  paramètre  qui  commence  par  « - », « ( » ou « ! ». Ce paramètre et tous ceux qui suivent sont
       considérés comme décrivant ce qui doit être recherché. Si aucun chemin n'est précisé, c'est le répertoire
       courant qui est utilisé. Si aucune expression n'est donnée, c'est l'expression -print  qui  est  utilisée
       (quoi qu'il en soit, vous devriez plutôt utiliser -print0).

       Cette page de manuel décrit les « options » contenues dans la liste d'expressions. Ces options contrôlent
       le  comportement  de  find,  mais  sont indiquées immédiatement après le dernier chemin. Les cinq options
       « réelles » -H, -L, -P, -D et -O doivent être saisies avant le premier chemin, le cas échéant. Un  double
       tiret  --  pourra  être  utilisé afin d'indiquer que les arguments restants ne sont pas des options, mais
       cela ne fonctionne pas vraiment vu la manière dont find détermine la fin de la  suite  de  paramètres  de
       chemin : il le fait en lisant jusqu'à ce qu'un paramètre d'expression n'arrive (qui commence aussi par un
       «  -  »). Maintenant, si un paramètre de chemin commence par un « - », find le traiterait plutôt comme un
       paramètre d'expression. Ainsi, pour s'assurer que tous les points de départ sont considérés  comme  tels,
       et  surtout  pour  empêcher  que  des  motifs  de  joker développés par l'interpréteur appelant ne soient
       malencontreusement traités comme des paramètres d'expression,  il  est  en  général  plus  sûr  de  faire
       commencer  les  chemins  de  recherche  douteux  ou  les jokers par « ./ » ou d'utiliser un chemin absolu
       commençant par un « / ». Autrement, il est généralement sûr, bien que non portable,  d'utiliser  l'option
       GNU -files0-from pour passer des points de départ arbitraires à find.

       -P     Ne  jamais  suivre  les liens symboliques. C'est le comportement par défaut. Quand find analyse ou
              affiche les informations concernant des fichiers, et quand le fichier est un lien symbolique,  les
              informations utilisées sont celles qui concernent les propriétés du lien symbolique lui-même.

       -L     Suivre  les  liens  symboliques.  Quand  find  analyse  ou  affiche les informations concernant un
              fichier, ce sont celles extraites des caractéristiques du fichier vers lequel mène  les  liens  et
              non  celle du lien lui-même (sauf s'il s'agit d'un lien cassé, ou si find est incapable d'analyser
              le fichier vers lequel pointe le lien). L'utilisation de cette option implique  -noleaf  qui  sera
              toujours active pour les utilisations ultérieures de l'option -P. Si l'option -L est active et que
              find   découvre   un   lien  symbolique  vers  un  sous-répertoire  lors  de  ses  recherches,  le
              sous-répertoire pointé par le lien symbolique sera examiné.

              Quand l'option -L est active, le prédicat -type correspondra toujours au type  du  fichier  pointé
              par  le  lien symbolique plutôt que celui du lien lui-même (sauf si le lien symbolique est cassé).
              Les actions qui peuvent casser des liens symboliques pendant  l'exécution  de  find  (par  exemple
              -delete)  peuvent  aboutir  à  des  comportements  perturbants.  L'utilisation de -L fait toujours
              renvoyer faux à -lname et -ilname.

       -H     Ne pas suivre les liens symboliques, sauf pour  le  traitement  des  paramètres  de  la  ligne  de
              commande.  Quand  find  analyse ou affiche les informations concernant un fichier, celles qui sont
              utilisées  viennent  des  propriétés  du  lien  symbolique  lui-même.  La  seule  exception  à  ce
              comportement  est  lorsqu'un  fichier  indiqué  sur  la  ligne  de  commande  est lui-même un lien
              symbolique, et que ce lien peut être résolu. Dans ce cas, les informations traitées sont celles du
              fichier pointé par le lien (autrement dit, le lien est suivi). Les informations concernant le lien
              lui-même sont utilisées en dernier recours, si le fichier pointé par le lien  symbolique  ne  peut
              pas  être  analysé.  Si  l'option  -H  est  active  et que l'un des liens indiqués sur la ligne de
              commande est un lien symbolique pointant vers un répertoire, le  contenu  de  ce  répertoire  sera
              analysé (sachant bien sûr que l'option -maxdepth 0 l'en empêcherait).

       Si plus d'une option parmi -H, -L ou -P est indiquée, chacune écrase les précédentes et c'est la dernière
       qui  apparaît  sur  la  ligne de commande qui prime sur les autres. Puisque c'est l'option par défaut, on
       considère que c'est -P qui est active, à moins que -H ou -L ne soient utilisées.

       La version find du GNU évalue souvent des fichiers pendant l'analyse de la ligne de commande, et ce avant
       qu'une recherche n'ait commencé. Ces options modifient aussi la façon dont les paramètres  sont  traités.
       Plus  précisément, il existe un certain nombre de tests qui comparent les fichiers listés sur la ligne de
       commande et le fichier en cours d'analyse. Dans tous les cas  de  figure,  un  fichier  de  la  ligne  de
       commande  aura  été  analysé  et  certaines  de ses caractéristiques auront été mémorisées. Si le fichier
       indiqué est en fait un lien symbolique, et que l'option -P est active (ou que  ni  -H  ni  -L  n'ont  été
       précisées),  alors  l'information qui sera utilisée pour les comparaisons sera extraite des propriétés du
       lien symbolique. Sinon, elle sera extraite des propriétés du fichier pointé par le lien. Si find ne  peut
       suivre  le  lien  (soit  parce  ce qu'il ne dispose pas des privilèges suffisants, soit parce que le lien
       pointe vers un fichier inexistant), alors ce sont les propriétés du lien lui-même qui seront utilisées.

       Quand les options -H ou -L sont actives, tout  lien  symbolique  donné  comme  paramètre  à  -newer  sera
       déréférencé, et l’horodatage utilisé sera celui du fichier pointé par le lien symbolique. Cela s'applique
       de la même façon à -newerXY, -anewer et -cnewer.

       L'option -follow a le même effet que -L, sauf qu'elle agit à l'endroit où elle apparaît (c'est-à-dire que
       si -L n'est pas utilisée et que -follow l'est, tout lien symbolique qui apparaît sur la ligne de commande
       après -follow sera déréférencé et ceux apparaissant avant ne le seront pas).

       -D options_débogage
              Afficher  des informations de diagnostic, ce qui peut être pratique pour analyser pourquoi find ne
              fait pas ce que vous lui demandez. La liste des options de débogage devra  utiliser  des  virgules
              comme séparateurs. La compatibilité des options de débogage n'est pas garantie au fil des versions
              de  findutils. La sortie de find -D help permet d'obtenir la liste complète des options reconnues.
              Les options de débogage autorisées comprennent

              exec   Afficher des informations de diagnostic liées à -exec, -execdir, -ok et -okdir

              opt    Afficher des informations de diagnostic liées à l'optimisation de l'arbre  de  l'expression
                     (voir l'option -O).

              rates  Afficher un résumé indiquant le nombre de succès ou d'échecs de chacun des prédicats.

              search Naviguer dans l'arborescence du répertoire de manière bavarde.

              stat   Afficher  des  messages dès que des fichiers sont examinés à l’aide des appels système stat
                     et lstat. Le programme find tente de limiter ce type d'appels.

              tree   Afficher l'arbre de l'expression dans sa forme d'origine et sa forme optimisée.

              all    Activer toutes les autres options de débogage (sauf help).

              help   Décrire les options de débogage.

       -Oniveau
              Activer l'optimisation des requêtes. Le programme find réorganise  l'ordre  des  tests  afin  d'en
              accélérer  l'exécution  tout  en préservant le résultat exact, c'est-à-dire en évitant de modifier
              ceux qui ont des effets de bord. Les  optimisations  réalisées  à  chacun  des  niveaux  sont  les
              suivantes.

              0      Équivalent au niveau 1 d'optimisation.

              1      Niveau  d'optimisation  par défaut. Il correspond au comportement habituel. Les expressions
                     sont réorganisées afin que les tests basés seulement sur les noms (comme -name  ou  -regex)
                     soient exécutés en premier.

              2      Tous  les  tests  -type  ou -xtype sont exécutés après ceux basés uniquement sur le nom des
                     fichiers, mais avant tous les tests qui exigent des informations stockées dans l'inœud. Sur
                     de nombreuses versions modernes d'Unix, les types de fichiers sont récupérés par  readdir()
                     et  sont  donc plus rapides à évaluer que ceux qui nécessitent de travailler d'abord sur le
                     fichier. Si vous utilisez le prédicat -fstype TOTO et si vous spécifiez un type de  système
                     de  fichiers  TOTO  non  connu (à savoir présent dans /etc/mtab), au moment du démarrage de
                     find, ce prédicat est équivalent à -false.

              3      Dans ce niveau d'optimisation, l'optimiseur de requêtes basé sur le coût total est  activé.
                     L'ordre  des  tests est modifié afin que les tests les moins coûteux (c'est-à-dire les plus
                     rapides) soient exécutés en premier, et les plus coûteux exécutés plus tard, si besoin est.
                     À l'intérieur d'un même niveau de coût, les prédicats sont évalués plus ou moins tôt  selon
                     leur  probabilité  de  succès.  Avec l'opérateur -o, les prédicats qui sont susceptibles de
                     réussir sont évalués plus tôt, et avec l'opérateur -a, ce sont ceux qui risquent  d'échouer
                     qui sont évalués plus tôt.

              L'optimiseur  basé  sur  le  coût a une idée précise des chances de succès de n'importe quel test.
              Dans certains cas, cette probabilité prend en compte la nature spécifique du  test  (par  exemple,
              l'estimation de succès d'un -type f est supérieure à celle d'un -type c). L'optimiseur basé sur le
              coût est actuellement en cours d'évaluation. S'il n'améliore pas les performances de find, il sera
              de  nouveau retiré. Réciproquement, les optimisations qui s'avèrent fiables, robustes et efficaces
              pourront dans l'avenir être  activées  à  des  niveaux  d'optimisations  moindres.  Toutefois,  le
              comportement  par  défaut  (c’est-à-dire  le niveau d'optimisation 1) ne sera pas modifié dans les
              différentes versions de la série 4.3.x. La suite de tests unitaires de findutils est exécutée  sur
              chacun des niveaux d'optimisation de find afin de s'assurer que le résultat est constant.

              Le  réarrangement  des  opérations exécutées par l'optimiseur basé sur le coût peut résulter en un
              changement de comportement visible par l'utilisateur. Par  exemple,  les  prédicats  -readable  et
              -empty  sont  sensibles  au  réarrangement.  Si exécutés dans l'ordre -empty -readable, un message
              d'erreur sera affiché pour les répertoires illisibles. Si exécutés dans l'ordre -readable  -empty,
              aucun  message d'erreur ne sera produit. C'est pourquoi une telle opération de réarrangement n'est
              pas exécutée au niveau d'optimisation par défaut.

EXPRESSIONS

       La partie de la ligne de commande après la liste des points de départ est l'expression. C'est  une  sorte
       de  spécification  de  requête  décrivant  ce à quoi correspondent les fichiers et ce qu'on fait avec les
       fichiers trouvés. Une expression se compose d'une séquence de choses :

       Tests  Tests renvoie une valeur vrai ou faux, habituellement à partir d'une  propriété  d'un  fichier  en
              question. Par exemple, le test -empty n'est vrai que lorsque le fichier courant est vide.

       Actions
              Les  actions ont des effets de bord (tels que l'affichage de quelque chose sur la sortie standard)
              et renvoient vrai ou faux selon leur réussite. Par exemple, l'action  -print  affiche  le  nom  du
              fichier courant sur la sortie standard.

       Options globales
              Les options globales modifient la réalisation de tests et d'actions spécifiées n'importe où sur la
              ligne  de  commande.  Les  options  globales renvoient toujours vrai. Par exemple, l'option -depth
              amène find à traverser le système de fichiers par ordre de profondeur.

       Options de position
              Les options de position ne modifient que les tests ou les actions qui les suivent. Les options  de
              position  renvoient toujours vrai. Par exemple, l'option -regextype est une option de position qui
              spécifie le dialecte de l'expression rationnelle intervenant plus tard sur la ligne de commande.

       Opérateurs
              Les opérateurs sont ajoutés aux autres éléments dans une expression. On y trouve  par  exemple  -o
              (pour  l'option logique OU) et -a (pour l'option logique ET). -a est supposé quand aucun opérateur
              n'est spécifié.

       L'action -print s'effectue sur tous les fichiers pour lesquels l'expression entière  est  vrai,  sauf  si
       elle contient une autre action que -prune ou -quit. Les actions qui désactivent le -print par défaut sont
       -delete, -exec, -execdir, -ok, -okdir, -fls, -fprint, -fprintf, -ls, -print et -printf.

       L'action -delete agit aussi comme une option (puisqu'elle implique -depth).

   OPTIONS DE POSITION
       Les  options  de  position  renvoient  toujours  vrai. Elles ne concernent que les tests qui apparaissent
       ensuite sur la ligne de commande.

       -daystart
              Mesurer les temps (avec -amin, -atime, -cmin, -ctime, -mmin, et -mtime)  depuis  le  début  de  la
              journée  plutôt  que depuis 24 heures. Cette option n'affecte que les tests qui sont indiqués plus
              loin sur la ligne de commande.

       -follow
              Obsolète, utilisez plutôt l'option -L à la place. Déréférence les liens symboliques. Cela implique
              l'option -noleaf. L'option -follow n'affecte que les tests qui apparaissent après  son  apparition
              sur  la  ligne  de  commande.  Sauf  dans le cas où l'option -H ou -L est indiquée, la position de
              l'option -follow change le comportement du prédicat -newer, et tout fichier donné en paramètre  de
              -newer  sera déréférencé s'il s'agit d'un lien symbolique. La même remarque s'applique à -newerXY,
              -anewer et -cnewer. De la même façon, le prédicat -type correspondra toujours au type  du  fichier
              pointé  par  le  lien  symbolique  plutôt  qu’au  lien  lui-même.  Les prédicats -lname et -ilname
              renvoient toujours faux lorsqu'on utilise -follow.

       -regextype type
              Changer la syntaxe de l'expression rationnelle des tests -regex et  -iregex  qui  seront  indiqués
              plus  loin sur la ligne de commande. Pour voir les types d'expression rationnelle connus, utilisez
              -regextype help. La documentation de Texinfo (voir VOIR AUSSI) explique la  signification  et  les
              différences  entre  les  différents  types  d'expression rationnelle. Si vous n'utilisez pas cette
              option, find se comporte comme si le type d'expression rationnelle emacs avait été spécifié.

       -warn, -nowarn
              Activer ou désactiver  les  messages  d'avertissement.  Ces  messages  d'avertissement  concernent
              l'usage  de  la ligne de commande et non les événements que find peut rencontrer lorsqu'il explore
              les répertoires. Le comportement par défaut est d'activer -warn si l'entrée standard est un tty et
              -nowarn dans les autres cas. Si un message d'avertissement est produit concernant l'utilisation de
              la ligne de commande, l’état de sortie de find n'est pas affecté. Si la  variable  d'environnement
              POSIXLY_CORRECT  est  définie  et si -warn est utilisé, rien ne dit quels messages d'avertissement
              seront actifs s'il y en a.

   OPTIONS GLOBALES
       Les options globales renvoient toujours vrai. Les options globales prennent effet  même  pour  les  tests
       intervenant  plus  tôt  sur  la  ligne  de  commande.  Pour  éviter toute confusion, les options globales
       devraient être spécifiées sur la ligne de commande après la liste des points de départ,  juste  avant  le
       premier  test,  une option de position ou une action. Si vous spécifiez une option globale ailleurs, find
       produira un message d'avertissement pour dire que cela peut entraîner des confusions.

       Les options globales interviennent après la liste des points de départ, elles sont d'un  autre  type  que
       des options comme -L.

       -d     Un synonyme de -depth, dans un but de compatibilité avec FreeBSD, NetBSD, MacOS X et OpenBSD.

       -depth Traiter d'abord les sous-répertoires avant le répertoire lui-même. L'action -delete implique aussi
              -depth.

       -files0-from fichier
              Lire  les  points  de  départ  à  partir de fichier au lieu de l'obtenir sur la ligne de commande.
              Contrairement aux limites connues de passer des points de départ au moyen d'arguments sur la ligne
              de commande, à savoir la limitation du nombre de noms de fichier, et l'ambiguïté inhérente de noms
              de fichiers en conflit avec des noms d'option, l'utilisation de cette  option  permet  des  passer
              sans risque un nombre arbitraire de points de départ à find.

              Utiliser  cette option et passer les points de départ en ligne de commande s'excluent mutuellement
              et cela n'est donc pas permis en même temps.

              L'argument fichier est obligatoire. Il est possible d'utiliser -files0-from - pour lire  la  liste
              des points de départ à partir du flux de l'entrée standard, et par exemple d'un tube. Dans ce cas,
              les  actions  -ok  et -okdir ne sont pas permises parce qu'elles interféreraient de façon évidente
              avec la lecture à partir de l'entrée standard afin d'obtenir une confirmation de l'utilisateur.

              Les points de départ dans fichier doivent  être  séparés  par  des  caractères  ASCII  NULL.  Deux
              caractères  NULL  successifs,  par  exemple  un point de départ avec un nom de fichier de longueur
              nulle ne sont pas permis et mèneront  à  une  erreur  de  diagnostic  suivie  d'un  code  d'erreur
              différent de zéro.

              Dans le cas où le fichier donné en argument est vide, find ne traite aucun point de départ et donc
              quittera immédiatement après l'analyse des arguments du programme. C'est différent de l'invocation
              standard  où find considère le répertoire actuel comme point de départ si aucun argument de chemin
              n'est passé.

              Sinon, le traitement des points de départ est comme d'habitude,  par  exemple  find  parcourra  de
              façon  récursive les sous-répertoires sauf indication contraire. Pour ne traiter que les points de
              départ, il est possible de passer l'argument -maxdepth 0 en plus.

              Remarques supplémentaires : si un fichier est listé plus d'une fois dans le fichier  d'entrée,  il
              n'est  pas  précisé  s'il  est  visité  plus  d'une  fois.  Si  le  fichier est déplacé pendant le
              fonctionnement de find, le résultat n'est pas précisé non plus. Enfin, la position de la recherche
              à l'intérieur du fichier nommé au moment où find quitte, que se soit avec la commande quit  ou  de
              n'importe quelle manière, n'est pas non plus précisée. Par « non précisé », on entend ici que cela
              peut fonctionner ou non, ou faire quelque chose de particulier et que le comportement peut changer
              d'une plateforme à l'autre ou selon la version de findutils.

       -help, --help
              Afficher un message d'aide concernant l'utilisation de find sur la sortie standard et quitter.

       -ignore_readdir_race
              Normalement,  find  affiche un message d'erreur quand il échoue lors de l'analyse d'un fichier. Si
              vous utilisez cette option et que le fichier est effacé entre le moment où  find  lit  le  nom  du
              fichier  dans  le  répertoire et celui où il essaye de l'analyser, vous n'obtiendrez aucun message
              d'erreur. Cela s'applique aussi aux fichiers et répertoires dont vous avez donné les noms  sur  la
              ligne  de commande. Cette option prend effet dès le moment où la ligne de commande est lue, ce qui
              veut dire que vous ne pouvez pas rechercher sur une partie  du  système  de  fichiers  avec  cette
              option  activée  et  sur  une autre partie avec cette option désactivée (si vous devez faire cela,
              vous utiliserez plutôt deux commandes find, une avec l'option et l'autre sans).

              De plus, find avec l'option -ignore_readdir_race ignorera les erreurs de l'action  -delete  si  le
              fichier  a disparu depuis la lecture du répertoire parent : il n'affichera pas d'erreur et le code
              de retour de l'action -delete sera vrai.

       -maxdepth n
              Descendre au plus à n niveaux de profondeur des répertoires (n étant un  entier  positif  ou  nul)
              sous  le  point  de  départ.  -maxdepth  0 signifie de n'appliquer les tests et les actions qu'aux
              points de départ eux-mêmes.

       -mindepth n
              Ne pas appliquer les tests ou les actions à des niveaux de profondeur inférieurs à  n  (un  entier
              non  négatif).  n  est un entier positif ou nul. -mindepth 1 signifie que les tests et les actions
              s'appliquent à tous les fichiers sauf aux points de départ.

       -mount Ne pas parcourir les répertoires situés  sur  d'autres  systèmes  de  fichiers.  Il  s'agit  d'une
              alternative à l'option -xdev, assurant la compatibilité avec d'anciennes versions de find.

       -noignore_readdir_race
              Désactiver l'effet de -ignore_readdir_race.

       -noleaf
              Ne  pas  optimiser, en assumant que les répertoires contiennent deux sous-répertoires de moins que
              leur nombre de liens physiques. Cette option est nécessaire lorsque l'on parcourt des systèmes  de
              fichiers  ne  suivant  pas  les  conventions  Unix  concernant les liens de répertoires, comme les
              systèmes MS-DOS, les CD-ROM ou les points de montage de volumes  AFS.  Chaque  répertoire  sur  un
              système  de  fichiers  Unix  dispose  d'au  moins deux liens physiques, son nom et « . ». De plus,
              chaque sous-répertoire a également un lien « .. » vers le répertoire parent (s'il  existe).  Quand
              find  examine un répertoire, il sait qu'il y a deux sous-répertoires de moins que de liens vers le
              répertoire. Une fois qu'il a déclaré deux sous-répertoires de moins que  le  nombre  de  liens  au
              répertoire,  il sait que le reste des entrées dans le répertoire ne sont pas des répertoires. (Ces
              fichiers sont des feuilles ([NDT] « leaf ») dans l'arborescence des répertoires). S'il n'y  a  que
              les  noms  de fichiers à examiner, il n'a plus besoin de vérifier leur nature, ce qui entraîne une
              augmentation notable de la vitesse de traitement.

       -version, --version
              Afficher le numéro de version de find et quitter.

       -xdev  Ne pas parcourir les répertoires situés sur d'autres systèmes de fichiers.

   TESTS
       Quelques tests (comme -newerXY et -samefile par exemple) permettent  de  comparer  le  fichier  en  cours
       d'examen  et  un  fichier  de  référence indiqué sur la ligne de commande. Quand ces tests sont utilisés,
       l'analyse du fichier de référence est soumis aux effets des options -H, -L, -P et tout -follow précédent.
       Par contre, ce fichier de référence n'est consulté qu'une fois, au moment où la  ligne  de  commande  est
       interprétée.  Si ce fichier de référence ne peut pas être analysé (par exemple si l'appel système stat(2)
       échoue), un message d'erreur sera généré et la commande find s'interrompra avec un  statut  différent  de
       zéro.

       Un paramètre numérique n peut être passé aux tests (comme -amin, -mtime, -gid, -inum, -links, -size, -uid
       et -used) ainsi

       +n     supérieur à n,

       -n     inférieur à n,

       n      strictement égal à n.

       Tests pris en charge :

       -amin n
              Dernier accès au fichier il y a plus de, moins de ou précisément n minutes.

       -anewer référence
              La  date  du  dernier  accès  au  fichier  actuel est plus récente que la dernière modification du
              fichier référence. Si référence est un lien symbolique et que les options -H ou -L  sont  actives,
              c'est toujours la date de dernière modification du fichier pointé qui est utilisée.

       -atime n
              Dernier accès au fichier il y a plus de, moins de ou précisément n*24 heures. Lorsque find calcule
              le  nombre  de  périodes  de  24  heures  depuis  lequel  il y a eu un accès au fichier, la partie
              fractionnelle est ignorée. Ainsi, pour correspondre à -atime +1, il faut qu'un  accès  au  fichier
              ait eu lieu il y a au moins deux jours.

       -cmin n
              Date  de  dernière  modification  de  l’état  du fichier il y a plus de, moins de ou précisément n
              minutes.

       -cnewer référence
              La date de dernière modification de l’état du fichier est plus récente que  la  date  de  dernière
              modification  du  fichier référence donné. Si le fichier référence donné est un lien symbolique et
              que les options -H ou -L sont actives, alors c'est la date de dernière modification de  l’état  du
              fichier pointé par le lien qui est considérée.

       -ctime n
              Date  de  dernière  modification de l'état du fichier il y a plus de, moins de ou précisément n*24
              heures. Consultez l'explication concernant -atime pour comprendre comment l’effet d'arrondi altère
              l'interprétation de la date de dernière modification de l'état du fichier.

       -empty Fichier vide. De plus, ce fichier doit être un fichier normal ou un répertoire.

       -executable
              Correspond aux fichiers qui sont exécutables et aux répertoires qui sont accessibles  (en  ce  qui
              concerne  la  résolution  d'un  nom  de  fichier). Les listes de contrôles d'accès (ACL) et autres
              artefacts de permissions sont pris en compte, à l'inverse du test -perm qui, lui, les  ignore.  Ce
              test  utilise  l'appel  système  access(2) et peut de ce fait être trompé par les serveurs NFS qui
              font de la substitution d'identité  (ou  du  root  squashing).  En  effet,  de  nombreux  systèmes
              implémentent  access(2)  au  niveau  du  client  et  ne  peuvent  donc se servir des substitutions
              d'identité gérées du coté serveur. Puisque ce test n'est basé  que  sur  le  résultat  fourni  par
              l'appel  système  access(2),  il  n'y  a  aucune  garantie  qu'un  fichier trouvé par ce test soit
              réellement exécutable.

       -false Toujours faux.

       -fstype type
              Fichier se trouvant sur un système de fichiers du type indiqué. Les types autorisés de systèmes de
              fichiers dépendent de la version d'Unix. Une  liste  non  exhaustive  des  systèmes  acceptés  sur
              certaines  versions  d'Unix  sont : ufs, 4.2, 4.3, nfs, tmp, mfs, S51K, S52K. Vous pouvez utiliser
              -printf avec la directive %F pour examiner les types de vos systèmes de fichiers.

       -gid n Fichier dont le GID numérique vaut plus de, moins de ou précisément n.

       -group nom_groupe
              Fichier appartenant au groupe nom_groupe (éventuellement un identifiant numérique).

       -ilname motif
              Semblable à -lname, mais sans différencier les majuscules et les minuscules. Si les options -L  ou
              -follow sont actives, ce test renvoie toujours faux, à moins que le lien symbolique ne soit cassé.

       -iname motif
              Semblable à -name, mais sans différencier les majuscules et les minuscules. Par exemple les motifs
              « to* »  et  « T??? »  correspondent  aux noms de fichiers « Toto », « TOTO », « toto », « tOto »,
              etc. Le motif « toto » correspond aussi à un fichier nommé « totobidule ».

       -inum n
              Fichier dont le numéro d'inœud est inférieur à, supérieur à ou égal à n. Il est  en  général  plus
              facile d'utiliser le test -samefile.

       -ipath motif
              Semblable à -path, mais sans différencier les capitales et les minuscules.

       -iregex motif
              Semblable à -regex, mais sans différencier les capitales et les minuscules.

       -iwholename motif
              Voir -ipath. Cette option est moins portable que -ipath.

       -links n
              Fichier ayant moins de, plus de ou précisément n liens physiques.

       -lname motif
              Fichier  représentant  un  lien  symbolique,  dont le contenu correspond au motif indiqué. Lors du
              développement des métacaractères, « / » et « . » ne  sont  pas  traités  différemment  des  autres
              caractères.  Si  les  options  -L  ou  -follow sont actives, ce test renvoie faux, sauf si le lien
              symbolique est cassé.

       -mmin n
              Fichier dont les données ont été modifiées il y a plus de, moins de ou précisément n minutes.

       -mtime n
              Fichier dont les données ont été modifiées il y a moins de, plus de ou  précisément  n*24  heures.
              Consultez l'explication sur -atime pour comprendre comment les arrondis affectent l'interprétation
              des dates de modification des fichiers.

       -name motif
              Fichier  dont  le  nom  de  base  (chemin  sans  les  répertoires  parents) correspond au motif de
              l'interpréteur de commande. Les répertoires parents des noms de fichier étant supprimés, le  motif
              ne  doit  pas  inclure  de  barre  oblique  parce  que « -name a/b » ne trouvera rien (vous devrez
              probablement utiliser plutôt -path). Une exception à l'utilisation de la barre oblique dans  motif
              («  -name  /  »)  est  la  recherche  du  répertoire  racine, car cela est une chaine valable pour
              correspondre au répertoire racine « / » (car le nom de base de « / » est « / »). Un  avertissement
              apparaît si vous essayez de passer un motif contenant une barre oblique, mais ne consistant pas en
              une  seule  barre  oblique,  sauf si la variable d'environnement POSIXLY_CORRECT est définie ou si
              l'option -nowarn est utilisée.

               Pour ignorer un répertoire, ainsi que tous ses fichiers, utilisez l'option -prune plutôt  que  de
              vérifier  chaque  fichier  de  l’arbre  (vous  trouverez  un  exemple dans la description de cette
              action). Les parenthèses ne sont pas considérées comme des caractères spéciaux, bien que  certains
              interpréteurs  de  commandes  (dont  le  Bash)  attribuent aux parenthèses un rôle particulier. La
              correspondance avec le nom du fichier est obtenue par l'utilisation de la fonction  fnmatch(3)  de
              la  bibliothèque.  N'oubliez  pas  de  protéger  votre  motif avec des guillemets afin d'éviter le
              développement des métacaractères par l'interpréteur de commandes.

       -newer référence
              La date de la dernière modification du fichier courant est  plus  récente  que  celle  du  fichier
              référence indiqué. Si le fichier référence est un lien symbolique et que les options -H ou -L sont
              actives, c'est la date de modification du fichier pointé qui sera considérée.

       -newerXY référence
              Réussit  si  l'horodatage  X  d'un fichier est plus récent que celui Y d'un fichier référence. Les
              lettres X et Y peuvent être une des suivantes :

              a   La date et l'heure de dernier accès au fichier référence
              B   La date et l'heure de création du fichier référence
              c   La date et l'heure de changement d'état de l'inœud référence
              m   La date et l'heure de dernière modification du fichier référence
              t   référence est directement interprétée en tant qu'heure

              Certaines combinaisons ne sont pas valables, comme X utilisé avec  t.  Certaines  combinaisons  ne
              sont  pas  implémentées  sur  certains systèmes, comme B qui n'est pas pris en charge par tous les
              systèmes. Une erreur fatale sera renvoyée si une combinaison non valable ou non implémentée de  XY
              est  appelée.  Les  dates  et  heures  sont  interprétées comme les arguments de l'option -d de la
              commande date de GNU. Si vous essayez d'utiliser la date de création d'un  fichier  et  que  cette
              date  de création ne peut pas être déterminée, vous obtiendrez un message d'erreur fatale. Si vous
              spécifiez un test qui se réfère à la date de création des fichiers à examiner,  ce  test  échouera
              pour chaque fichier pour lequel la date de création est inconnue.

       -nogroup
              Fichier dont l'identifiant de groupe numérique ne correspond à aucun groupe d'utilisateurs.

       -nouser
              Fichier dont l'UID numérique ne correspond à aucun utilisateur.

       -path motif
              Fichier  dont  le  nom  correspond  au  motif motif. Les métacaractères « / » ou « . » ne sont pas
              interprétés, d'où, par exemple,
                  find . -path "./sr*sc"
              affichera une entrée pour un répertoire nommé ./src/misc (s'il en existe un). Pour  ignorer  toute
              une arborescence, utilisez -prune au lieu de vérifier chaque fichier d'une arborescence. Remarquez
              que  le  test  de correspondance de motif s'applique à tout le nom du fichier en commençant par un
              des points de départ désigné sur la ligne de commande. Ici, utiliser un chemin absolu n'aurait  de
              sens  que  si  le point de départ en question est aussi un chemin absolu. Cela veut dire que cette
              commande ne correspondra jamais :
                  find bidule -path /truc/bidule/monFichier -print
              find compare l'argument -path à la concaténation du nom du répertoire et le nom de base du fichier
              en cours d'examen. La concaténation ne se terminant jamais par une barre  oblique,  les  arguments
              -path qui se terminent par ce signe ne trouveront rien (sauf peut-être un point de départ spécifié
              sur  la  ligne de commande). Le prédicat -path est également pris en charge par HP-UX find et fait
              partie du standard POSIX 2008.

       -perm mode
              Fichier dont les  bits  d'autorisations  sont  fixés  exactement  au  mode  indiqué  (en  notation
              symbolique  ou  octale).  Puisqu'une  correspondance  stricte est requise, si vous voulez utiliser
              cette forme de modes symboliques, vous risquez d'être obligé d'utiliser une chaîne  de  caractères
              plutôt  compliquée.  Par  exemple,  -perm g=w ne recherchera que les fichiers qui ont le mode 0020
              (c'est-à-dire, ceux pour lesquels la permission d'écriture pour le groupe est la seule  permission
              définie).  Vous  voudrez  plus  certainement  utiliser  les  formes  « / »  ou  « - »,  telles que
              -perm -g=w, qui correspondent à tous les fichiers qui ont le droit d'écriture  pour  les  groupes.
              Consultez la section EXEMPLES pour des exemples plus significatifs.

       -perm -mode
              Fichier  ayant tous les bits d'autorisations indiqués dans le mode. Les notations symboliques sont
              acceptées dans ce cas, et c'est en général comme cela  que  l'on  veut  s'en  servir.  Vous  devez
              indiquer  « u », « g » ou « o » si vous utilisez un mode symbolique. Consultez la section EXEMPLES
              pour des exemples plus significatifs.

       -perm /mode
              Fichier ayant certains des bits d'autorisations indiqués dans le mode. La notation symbolique  est
              acceptée  dans  ce  cas.  Vous  devez  indiquer  « u »,  « g »  ou  « o » si vous utilisez un mode
              symbolique. Consultez la section EXEMPLES pour des  exemples  plus  significatifs.  Si  aucun  bit
              d'autorisation n'est indiqué dans mode, cela correspond à tous les fichiers (l'objectif est d'être
              cohérent avec le comportement de perm -000).

       -perm +mode
              Cela n'est plus pris en charge (et obsolète depuis 2005). Utilisez plutôt -perm /mode.

       -readable
              Correspond  aux  fichiers  qui sont accessibles en lecture par l'utilisateur actuel. Les listes de
              contrôle d'accès (ACL) et les autres artefacts de permissions sont pris en compte, à l'inverse  du
              test  -perm  qui, lui, les ignore. Ce test utilise l'appel système access(2), et peut, de ce fait,
              être trompé par les serveurs NFS qui font de la  substitution  d'identité  (UID  mapping  ou  root
              squashing).  En  effet,  de  nombreux  systèmes  implémentent  access(2) au niveau du client et ne
              peuvent donc pas se servir des substitutions d'identités gérées du coté serveur.

       -regex motif
              Nom de fichier correspondant à l'expression rationnelle motif. Il s'agit d'une correspondance  sur
              le  chemin  complet,  pas  d'une  recherche. Par exemple, pour mettre en correspondance un fichier
              nommé « ./fubar3 », vous pouvez utiliser les expressions rationnelles  « .*bar. »  ou  « .*b.*3 »,
              mais  pas  « f.*r3 ».  Les  expressions  rationnelles  comprises par find sont, par défaut, celles
              d'Emacs, mais cela peut être changé avec l'option -regextype.

       -samefile nom
              Fichier qui se réfère au  même  inœud  que  nom.  Quand  -L  est  actif,  cela  inclut  les  liens
              symboliques.

       -size n[cwbkMG]
              Fichier  utilisant moins de, plus de ou précisément n unités d'espace arrondi au nombre supérieur.
              On pourra utiliser les suffixes suivants :

              « b »  Pour des blocs de 512 octets (comportement par défaut si rien n'est indiqué).

              « c »  Pour indiquer des octets.

              « w »  Pour des mots de deux octets.

              « k »  Pour des kibioctets (Kio, unités de 1024 octets)

              « M »  Pour des mébioctets (Mio, unités de 1024 * 1024 = 1048576 octets)

              « G »  pour des gibioctets (Gio, unités de 1024 * 1024 * 1024 = 1073741824 octets)

              La taille est simplement le membre st_size de struct stat remplie par l'appel  système  lstat  (ou
              stat),  arrondie  à l'unité supérieure comme décrit ci-dessus. En d'autres termes, il est cohérent
              avec le résultat de ls -l. Souvenez-vous que les spécificateurs de format « %k »  et  «  %b  »  de
              -printf  gèrent  différemment  les fichiers creux. Le suffixe « b » décompte toujours des blocs de
              512 octets, jamais de 1024 octets, contrairement au comportement de -ls.

              Les préfixes + et - signifient, comme d'habitude, plus grand que et plus petit  que  ;  ainsi  une
              taille  exacte  de  n  unités  ne  correspond  pas.  Retenez  que la taille est arrondie à l'unité
              supérieure. Donc -size -1M n'équivaut pas à -size -1048576c. Le premier  ne  correspond  qu'à  des
              fichiers vides, le second à des fichiers pesant entre 0 et 1 048 575 octets.

       -true  Toujours vrai.

       -type c
              Fichier du type c :

              b      fichier spécial en mode bloc (avec tampon)

              c      fichier spécial en mode caractère (sans tampon)

              d      répertoire

              p      tube nommé (FIFO)

              f      fichier normal

              l      Lien  symbolique,  n'est jamais vrai si les options -L ou -follow sont actives, à moins que
                     le lien symbolique ne soit cassé. Si vous voulez rechercher des liens symboliques alors que
                     -L est actif, utilisez -xtype.

              s      socket

              D      door (Solaris)

              Pour rechercher plus d'un type à la fois, vous pouvez fournir une liste  combinée  de  lettres  de
              types séparées par une virgule « , » (extension GNU).

       -uid n Fichier dont l'identifiant utilisateur numérique vaut plus de, moins de ou précisément n.

       -used n
              Fichier dont le dernier accès date de plus de, moins de ou précisément n jours après la date de sa
              dernière modification.

       -user utilisateur
              Fichier appartenant à l'utilisateur indiqué (identifiant utilisateur numérique éventuellement).

       -wholename motif
              Voir -path. Cette option est moins portable que -path.

       -writable
              Correspond  aux  fichiers qui sont accessibles en écriture par l'utilisateur actuel. Les listes de
              contrôle d'accès (ACL) et les autres artefacts de permissions sont pris en compte, à l'inverse  du
              test  -perm  qui,  lui, les ignore. Ce test utilise l'appel système access(2) et peut, de ce fait,
              être trompé par les serveurs NFS qui font de la  substitution  d'identité  (UID  mapping  ou  root
              squashing),  étant  donné  que  de  nombreux systèmes implémentent access(2) au niveau du noyau du
              client et ne peuvent donc se servir des substitutions d'identités gérées du côté serveur.

       -xtype c
              Semblable à -type sauf si le fichier est un lien symbolique. Pour les liens  symboliques,  si  les
              options -H ou -P ont été spécifiées, le test est vrai si le fichier pointé par le lien est de type
              c ;  si  l'option  -L  a  été spécifiée, le test est vrai si c vaut « l ». Autrement dit, pour les
              liens symboliques, -xtype vérifie le type des fichiers que l'option -type ne vérifie  pas.  Si  un
              lien  symbolique est cassé (parce que le sujet qu'il pointe n'existe pas ou que le lien pointe sur
              lui-même), alors -xtype se comportera comme -type.

       -context motif
              (SELinux seulement) le contexte de sécurité du fichier correspond au motif global.

   ACTIONS
       -delete
              Effacer les fichiers ou les répertoires et renvoyer vrai si l'effacement a réussi. Si l'effacement
              échoue, un message d'erreur est envoyé et le code de retour de find sera différent de zéro  (quand
              finalement il s'interrompt).

              Attention  : N'oubliez pas que find évalue la ligne de commande comme une expression. Aussi placer
              -delete en premier fera que find essaiera de détruire tout ce qu'il  trouvera  sous  le  point  de
              départ spécifié.

              L'utilisation  de  l'action  -delete  en ligne de commande active automatiquement l'option -depth.
              Comme à son tour -depth rend -prune inefficace, l'action -delete ne  peut  pas  être  combinée  de
              façon utile avec -prune.

              Souvent,  l'utilisateur  voudrait tester une recherche find en ligne de commande avec -print avant
              d'ajouter -delete à l'exécution réelle de la suppression. Pour éviter des  résultats  surprenants,
              il  est  habituellement  préférable  de  ne  pas  oublier  d'utiliser -depth explicitement pendant
              l'exécution préalable du test.

              L'action -delete échouera aussi à supprimer un répertoire à moins qu'il ne soit vide.

              Avec l'option -ignore_readdir_race, find ignorera les erreurs de l'action -delete si le fichier  a
              disparu  depuis  que le répertoire parent a été lu : il n'affichera pas de diagnostic d'erreur, ne
              changera pas le code d'erreur à une valeur différente de zéro, et le code de  retour  de  l'action
              -delete sera vrai.

       -exec commande ;
              Exécuter  la  commande ;  vrai si le code de retour 0 est renvoyé. Tous les paramètres qui suivent
              find sont considérés comme des paramètres pour la ligne de commande,  jusqu'à  la  rencontre  d'un
              caractère « ; ». La chaîne « {} » est remplacée par le nom du fichier en cours de traitement, cela
              dans  toutes  ses  occurrences  sur la ligne de commande et pas seulement aux endroits où elle est
              isolée, comme c'est le cas avec d'autres versions de find. Ces deux chaînes peuvent  avoir  besoin
              d'être  protégées  du  développement  de  la ligne de commande par l'interpréteur, en utilisant le
              caractère d'échappement (« \ ») ou  une  protection  par  des  guillemets.  Consultez  la  section
              EXEMPLES  pour  des  exemples d'utilisation de l'option -exec. La commande indiquée est exécutée à
              chaque fois qu'un fichier correspond. La commande est exécutée depuis le répertoire de départ.  Il
              existe  d'inévitables  problèmes  de sécurité associés à l'usage de l'option -exec, c'est pourquoi
              vous devriez utiliser l'option -execdir à la place.

       -exec commande {} +
              Cette variante de l'option -exec exécute la commande spécifiée sur les fichiers sélectionnés, mais
              en ajoutant le nom de chaque fichier trouvé à la fin de la ligne  de  commande.  Le  nombre  total
              d'invocations  de  la commande sera donc très inférieur au nombre de fichiers trouvés. La ligne de
              commande est construite à la manière de  xargs.  Une  seule  instance  de  « {} »  est  permise  à
              l'intérieur de la commande et elle doit apparaître à la fin et immédiatement avant le « + » ; elle
              doit  être  échappée (avec un « \ ») ou entre guillemets pour la protéger d'une interprétation par
              les interpréteurs. La commande sera exécutée dans le répertoire de départ. Si une invocation  avec
              la  forme  « + » renvoie une valeur différente de zéro comme code de retour, alors find renvoie un
              code de retour différent de zéro. Si find rencontre une erreur, cela peut  parfois  provoquer  une
              fin  immédiate,  aussi  certaines  commandes  en  attente  pourraient ne pas être exécutées. C'est
              pourquoi -exec ma_commande ... {} \+ -quit peut n'aboutir à aucune exécution de ma_commande. Cette
              variante de -exec renvoie toujours vrai.

       -execdir commande ;

       -execdir commande {} +
              Semblable à -exec, sauf que la  commande  indiquée  sera  exécutée  à  partir  du  sous-répertoire
              contenant le fichier correspondant qui n'est normalement pas celui à partir duquel vous avez lancé
              find.  Comme  avec  -exec,  {}  devrait  être  entouré  de guillemets si find est appelé depuis un
              interpréteur. C'est une méthode bien plus fiable d'invocation de commande, puisqu'elle  évite  des
              conflits  de  résolution  de  chemins des fichiers trouvés. Comme pour l'option -exec, la forme de
              -execdir avec « + » construira une ligne  de  commande  de  telle  sorte  qu'elle  pourra  traiter
              plusieurs fichiers trouvés en une passe, mais chaque invocation de commande ne portera que sur une
              liste  de fichiers issus d'un seul et même répertoire. Si vous utilisez cette option, veillez bien
              à ce que votre variable d'environnement PATH ne contienne pas une référence au répertoire  courant
              « . »,  sinon  un pirate pourrait lancer toutes les commandes qu'il souhaite en mettant un fichier
              au nom adéquat dans les répertoires où vous allez lancer un -execdir. De la même  manière,  évitez
              les  références  vides ou les noms de répertoires exprimés en relatif dans PATH. Si une invocation
              avec la forme « + » renvoie un état de sortie autre que zéro, find renvoie un état de  sortie  qui
              n'est pas zéro. Si find rencontre une erreur, il peut quitter immédiatement, donc des commandes en
              attente ne seront pas lancées. Le résultat de l'action varie selon que vous utilisez la variante +
              ou  ;  ;  -execdir commande {} + renvoie toujours vrai alors que -execdir commande {} ; ne renvoie
              vrai que si commande renvoie 0.

       -fls fichier
              Vrai ; semblable à -ls, mais écrire dans le fichier comme le fait -fprint. Le  fichier  en  sortie
              est toujours créé, même si le prédicat n'est jamais vérifié. Consultez la section NOMS DE FICHIERS
              PEU COURANTS pour obtenir des informations sur la gestion des caractères inhabituels dans les noms
              de fichier.

       -fprint fichier
              Vrai ; écrire le nom complet dans le fichier. Si fichier n'existe pas au démarrage de find, il est
              créé.  S'il  existe, il est écrasé. Les noms de fichier /dev/stdout et /dev/stderr sont traités de
              manière particulière, ils correspondent respectivement  à  la  sortie  standard  et  à  la  sortie
              d'erreurs.  Le  fichier  de  sortie  est  toujours créé, même si le prédicat n'est jamais vérifié.
              Consultez la section NOMS DE FICHIERS PEU COURANTS pour obtenir des informations  sur  la  gestion
              des caractères inhabituels dans les noms de fichiers.

       -fprint0 fichier
              Vrai ;  semblable  à  -print0,  mais  écrire  dans le fichier comme le fait -fprint. Le fichier de
              sortie est toujours créé, même si le prédicat n'est jamais vérifié. Consultez la section  NOMS  DE
              FICHIERS PEU COURANTS pour obtenir des informations sur la gestion des caractères inhabituels dans
              les noms de fichiers.

       -fprintf fichier format
              Vrai ;  semblable  à  -printf,  mais  écrire  dans le fichier comme le fait -fprint. Le fichier de
              sortie est toujours créé, même si le prédicat n'est jamais vérifié. Consultez la section  NOMS  DE
              FICHIERS PEU COURANTS pour obtenir des informations sur la gestion des caractères inhabituels dans
              les noms de fichiers.

       -ls    Vrai,  afficher  le  nom  du  fichier  en cours dans le format ls -dils sur la sortie standard. La
              taille est calculée en blocs de 1 Ko, à moins que la variable d'environnement  POSIXLY_CORRECT  ne
              soit  positionnée,  auquel cas la taille est calculée en blocs de 512 octets. Consultez la section
              NOMS DE FICHIERS PEU COURANTS  pour  obtenir  des  informations  sur  la  gestion  des  caractères
              inhabituels dans les noms de fichier.

       -ok commande ;
              Comme  -exec,  mais  interroger d'abord l'utilisateur. Si l'utilisateur acquiesce, la commande est
              lancée. Sinon, le test devient faux. Si la commande est lancée, son entrée standard est  redirigée
              depuis /dev/null. Cette action ne peut être indiquée en même temps que l'option -files0-from.

              La  réponse à l’invite de commande est comparée à deux expressions rationnelles afin de déterminer
              s'il s'agit d'une réponse positive ou négative. Ces expressions rationnelles sont données  par  le
              système si la variable d'environnement POSIXLY_CORRECT est définie et, dans le cas contraire, dans
              les  traductions des messages de find. Si le système n'a aucune définition appropriée, les propres
              définitions de find seront utilisées. Dans tous  les  cas,  l'interprétation  de  ces  expressions
              rationnelles  sera  modifiée  par les variables d'environnement LC_CTYPE (classe de caractères) et
              LC_COLLATE (caractères étendus et classes d’équivalence).

       -okdir commande ;
              Comme -execdir, mais interroger d'abord l'utilisateur comme dans le cas de -ok.  Si  l'utilisateur
              n'acquiesce  pas,  le  test  renvoie  faux.  Si  la  commande  est lancée, son entrée standard est
              redirigée depuis /dev/null. Cette action  ne  peut  être  indiquée  en  même  temps  que  l'option
              -files0-from.

       -print Vrai ;  afficher  le  nom  complet du fichier sur la sortie standard, suivi d'un saut de ligne. Si
              vous redirigez la sortie standard de find vers un autre programme et qu'il y a la  moindre  chance
              qu'un  des  noms  des  fichiers que vous recherchez contienne un saut de ligne, alors vous devriez
              très sérieusement opter pour l'option -print0 plutôt que -print.  Consultez  la  section  NOMS  DE
              FICHIERS PEU COURANTS pour obtenir des informations sur la gestion des caractères inhabituels dans
              les noms de fichier.

       -print0
              Vrai ;  afficher  le  nom  complet  du fichier sur la sortie standard, suivi d'un octet NULL (à la
              place du caractère saut de ligne que -print  utilise).  Cela  permet  aux  fichiers  dont  le  nom
              contient  un  saut  de  ligne ou d'autres types de caractères non affichables, d'être correctement
              interprétés par les programmes utilisant les données en sortie de find. Cette option correspond  à
              l'option -0 de xargs.

       -printf format
              Vrai ;  afficher  le  format  sur  la sortie standard, en interprétant les séquences d'échappement
              « \ » et les directives « % ». La largeur et la précision des champs peuvent être spécifiées comme
              dans la fonction « printf » du langage C. Notez bien que la plupart des champs sont affichés selon
              %s plutôt que %d, ce qui veut dire que les drapeaux ne fonctionneront  peut-être  pas  comme  vous
              vous y attendez. Cela veut aussi dire que le drapeau « - » fonctionnera (il force l'alignement des
              champs  à  gauche).  Contrairement  à -print, -printf n'ajoute pas de saut de ligne à la fin de la
              chaîne. Les séquences d'échappement et les directives sont les suivantes :

              \a     Sonnerie.

              \b     Effacement arrière (Backspace).

              \c     Arrêter immédiatement l'impression du format et vider le flux de sortie.

              \f     Saut de page.

              \n     Nouvelle ligne.

              \r     Retour chariot.

              \t     Tabulation horizontale.

              \v     Tabulation verticale.

              \0     Caractère ASCII NUL.

              \\     Un caractère « \ » littéral.

              \NNN   Le caractère ASCII dont le code est NNN (en octal).

              Un « \ » suivi de n'importe quel autre caractère est traité comme  un  caractère  ordinaire ;  ils
              sont donc affichés tous les deux.

              %%     Un caractère pourcentage littéral (%).

              %a     Date du dernier accès au fichier, dans le format renvoyé par la fonction C ctime(3).

              %Ak    Date  du  dernier  accès  au  fichier, dans le format spécifié par k, qui doit être soit un
                     « @ », soit une directive pour la fonction C strftime(3). Les valeurs possibles de  k  sont
                     indiquées  ci-dessous.  Veuillez  vous  reporter  à la documentation de strftime(3) pour la
                     liste complète. Certains caractères de spécification de conversion pourraient ne  pas  être
                     disponibles  sur tous les systèmes, à cause des différences entre les fonctions strftime(3)
                     existantes.

                     @      Secondes écoulées depuis le  1er  janvier  1970  à  00 h 00  GMT,  avec  une  partie
                            décimale.

                     Champs horaires :

                     H      heure (00..23)

                     I      heure (01..12)

                     k      Heure (0..23)

                     l      Heure (1..12)

                     M      minute (00..59)

                     p      AM ou PM, avec la désignation locale

                     r      Heure au format 12 heures (hh:mm:ss [AP]M)

                     S      Seconde (00.00 .. 61.00). Une partie est fractionnée.

                     T      Heure au format 24 heures (hh:mm:ss.xxxxxxxxxx)

                     +      La  date  et  l'heure,  séparées  par un « + », « 2004-04-28+22:22:05 » par exemple.
                            C’est une extension GNU. L'heure est donnée dans la zone horaire courante (qui  peut
                            être  modifiée à l’aide de la variable d'environnement TZ). Le second champ contient
                            une partie décimale.

                     X      Représentation locale de l'heure (H:M:S). Le  champ  secondes  comprend  une  partie
                            fractionnée.

                     Z      Fuseau horaire (par exemple MET) ou rien si le fuseau horaire est indéterminé.

                     Champs de date :

                     a      Abréviation locale du jour de la semaine (lun..dim)

                     A      Nom local entier du jour de la semaine, de longueur variable (lundi..dimanche)

                     b      Abréviation locale du mois (jan..déc)

                     B      Nom local entier du mois, de longueur variable (janvier..décembre)

                     c      Date  et  heure locale (Sat Nov 04 12:02:33 EST 1989). Le format utilisé est le même
                            que pour ctime(3) et, afin de préserver la compatibilité avec ce format,  il  n'y  a
                            pas de partie décimale pour les secondes.

                     d      Quantième du mois (01..31)

                     D      Date (mm/jj/aa)

                     F      Date (aaaa/mm/jj)

                     h      Identique à b

                     j      quantième du jour dans l'année (001..366)

                     m      mois (01..12)

                     U      Numéro de la semaine dans l'année, les semaines commençant le dimanche (00..53)

                     w      Jour de la semaine (0..6)

                     W      Numéro de la semaine dans l'année, les semaines commençant le lundi (00..53)

                     x      Représentation locale de la date (mm/jj/aa)

                     y      deux derniers chiffres de l'année (00..99)

                     Y      Année (1970...)

              %b     Taille  de  l'espace  disque  consommé  par  le  fichier, en nombre de blocs de 512 octets.
                     Puisque l'espace disque est alloué par multiple de  la  taille  d'un  bloc  du  système  de
                     fichiers,  on  obtient souvent un résultat supérieur à %s/512. Il peut aussi être inférieur
                     si le fichier est creux (sparse file).

              %Bk    La date de « naissance » du fichier, c'est-à-dire sa date de création, au  format  spécifié
                     par  k  qui  est le même que pour %A. Cette directive produit une chaîne vide si le système
                     d'exploitation ou le système de fichiers sous-jacents ne gèrent pas les dates de création.

              %c     Date de dernière modification d’état du fichier, dans le format renvoyé par la  fonction  C
                     ctime(3).

              %Ck    Date  de  dernière  modification du statut du fichier, dans le format spécifié par k, comme
                     pour la directive %A.

              %d     Profondeur du fichier dans l'arborescence des répertoires, 0 signifiant que le fichier  est
                     un paramètre de la ligne de commande.

              %D     Le  numéro  du  périphérique  sur lequel le fichier est rangé (la valeur du champ st_dev de
                     struct stat) exprimé selon le système décimal.

              %f     Afficher le nom de base ; le nom du fichier moins les répertoires supérieurs (uniquement le
                     dernier élément). Pour « / », le résultat est « / ».  Voir  la  section  EXEMPLES  pour  un
                     exemple.

              %F     Type  de  système  de  fichiers  sur  lequel  se  trouve le fichier. Cette valeur peut être
                     utilisée pour l'option -fstype.

              %g     Nom du groupe propriétaire du fichier ou identifiant de groupe numérique si le  groupe  n'a
                     pas de nom.

              %G     Identifiant de groupe numérique du fichier.

              %h     Nom  de  répertoire ; répertoires en tête du nom de fichier (tout sauf la dernière partie).
                     Si le nom du fichier ne contient aucune barre oblique  (NDT :  slash)  (donc  si  c'est  un
                     fichier  du  répertoire  courant),  alors  l'option  %h  se  développera en « . ». Pour les
                     fichiers étant eux-mêmes des répertoires et contenant une barre oblique (y compris / ),  %h
                     se développe en une chaîne vide. Voir la section EXEMPLES pour un exemple.

              %H     Point de départ à partir duquel le fichier a été trouvé.

              %i     Numéro d'inode du fichier (selon le système décimal).

              %k     Taille  de  l'espace  disque  utilisé  par  un fichier, en nombre de blocs de 1 kilo-octet.
                     Puisque l'espace disque est alloué par multiple de  la  taille  d'un  bloc  du  système  de
                     fichiers,  on obtient souvent un résultat supérieur à %s/1024. Il peut aussi être inférieur
                     si le fichier est creux.

              %l     Destination du lien symbolique (vide si le fichier n'est pas un lien symbolique).

              %m     Bits d'autorisation d'accès au fichier (en système octal). Cette option utilise les nombres
                     « traditionnellement » utilisés dans la plupart des implémentations d'Unix, mais  si  votre
                     système  utilise un ordre inhabituel de la forme octale des bits de permissions, alors vous
                     observerez une différence entre la valeur réelle des modes du fichier et la sortie  de  %m.
                     On veut habituellement un zéro en début de ce nombre et pour l'obtenir vous pouvez utiliser
                     le drapeau # (« %#m », par exemple).

              %M     Les  permissions  du  fichier (sous forme symbolique, comme dans ls). Cette directive n'est
                     disponible que dans les versions de findutils 4.2.5 et suivantes.

              %n     Nombre de liens physiques sur le fichier.

              %p     Nom du fichier.

              %P     Nom du fichier, sans le nom du point de départ sous lequel il a été trouvé.

              %s     Taille du fichier en octets.

              %S     Densité du fichier, calculée par la formule  TAILLEBLOC*nb_bloc/taille_fichier.  La  valeur
                     obtenue  pour  un fichier ordinaire d'une certaine taille dépend du système d'exploitation.
                     Toutefois, la  valeur  normalement  attendue  pour  un  fichier  creux  (sparse  file)  est
                     inférieure  à  1.0,  tandis qu'un fichier qui utilise l'indirection de blocs pourra obtenir
                     une valeur supérieure à 1.0. En général, le nombre de blocs utilisés par un fichier  dépend
                     du système de fichiers. La valeur de TAILLEBLOC est dépendante du système, mais est souvent
                     de  512 octets. Si le fichier a une taille nulle, la valeur affichée est indéfinie. Sur les
                     systèmes qui n'offrent pas la gestion des nombres de blocs, la  valeur  de  la  densité  du
                     fichier sera de 1.0.

              %t     Date  de  dernière  modification  du  fichier,  dans  le  format  renvoyé par la fonction C
                     ctime(3).

              %Tk    Date de dernière modification du fichier, dans le format spécifié  par  k,  comme  pour  la
                     directive %A.

              %u     Nom  du  propriétaire  du fichier ou identifiant utilisateur numérique si l'utilisateur n'a
                     pas de nom.

              %U     Identifiant utilisateur numérique du propriétaire du fichier.

              %y     Type du fichier (comme dans ls -l), U pour type inconnu (ce qui ne devrait pas arriver).

              %Y     Type  du  fichier  (comme  pour  %y),  suivi  des  liens  symboliques :   «   L   »=boucle,
                     « N »=inexistant, « ? » pour toute autre erreur au moment de la détermination du type de la
                     cible du lien symbolique.

              %Z     (SELinux seulement) Le contexte de sécurité du fichier.

              %{ %[ %(
                     Réservé pour une utilisation future.

              Un  caractère « % » suivi de n'importe quel autre caractère est supprimé, mais le second caractère
              est affiché (ne soyez pas trop confiant cependant, car de nouveaux caractères de  format  pourront
              être  un  jour utilisés). Un « % » à la fin de l'argument de format peut engendrer un comportement
              aléatoire puisqu'il n'y a aucun caractère suivant. Ce qui peut être plus ou  moins  grave  suivant
              les cas.

              Les  options  %m  et  %d gèrent les drapeaux #, 0 et +, à l'inverse des autres directives, même si
              elles affichent des nombres. Les autres directives numériques qui ne gèrent pas ces drapeaux  sont
              G,  U,  b,  D,  k et n. Le drapeau de format « - » est géré, et transforme l'alignement des champs
              (qui sont par défaut alignés à droite) en alignement à gauche.

              Consultez la section NOMS DE FICHIERS PEU COURANTS pour obtenir des informations  sur  la  gestion
              des caractères inhabituels dans les noms de fichier.

       -prune Vrai  ; si le fichier est un répertoire, ne pas y descendre. Si -depth est donné, alors -prune est
              sans effet. Parce que -delete implique -depth, vous ne pouvez pas utiliser  utilement  à  la  fois
              -prune  et  -delete.  Par  exemple,  pour  sauter  le répertoire src/emacs et tous les fichiers et
              répertoires en dessous, et afficher les noms des autres fichiers  trouvés,  faites  quelque  chose
              comme ceci :
                  find . -path ./src/emacs -prune -o -print

       -quit  Quitter  immédiatement  (avec le code de retour zéro s'il n'y a eu aucune erreur). C'est différent
              de -prune, car -prune ne s'applique qu'au contenu des répertoires coupés, tandis que -quit  arrête
              simplement  find  immédiatement.  Aucune  exécution  de processus enfant ne sera poursuivie. Toute
              ligne de commande construite par -exec ... + ou -execdir ... + sera appelée avant que le programme
              ne quitte. Après -quit, plus aucun fichier indiqué sur la ligne de commande ne  sera  traité.  Par
              exemple, « find /tmp/toto /tmp/machin -print -quit » n'affichera que « /tmp/toto ».
              Une  utilisation classique de -quit consiste à arrêter l'examen du système de fichiers dès qu'on a
              trouvé ce qu'on cherche. Par exemple, si on veut chercher un seul fichier, on peut faire cela :
                  find / -name needle -print -quit

   OPÉRATEURS
       Dans l'ordre de priorité décroissante :

       ( expr )
              Forcer la priorité. Comme les parenthèses risquent d'être interprétées par le shell, vous  devriez
              normalement  les protéger. De nombreux exemples de cette page de manuel utilisent l'antislash dans
              ce but, par exemple « \(...\) » au lieu de « (...) ».

       ! expr Vrai si expr est faux. Ce caractère doit habituellement être protégé pour éviter d'être interprété
              par le shell.

       -not expr
              Identique à ! expr, mais non conforme à la norme POSIX.

       expr1 expr2
              Deux expressions sur la même ligne sont prises pour être jointes par un -a impliqué ; expr2  n'est
              pas évalué si expr1 est faux.

       expr1 -a expr2
              Identique à expr1 expr2.

       expr1 -and expr2
              Identique à expr1 expr2, mais non conforme à la norme POSIX.

       expr1 -o expr2
              OU ; expr2 n'est pas évaluée si expr1 est vraie.

       expr1 -or expr2
              Identique à expr1 -o expr2, mais non conforme à la norme POSIX.

       expr1 , expr2
              Lister ;  expr1  et  expr2 sont toujours évaluées. La valeur de expr1 est annulée, la valeur de la
              liste est la valeur de expr2. Le séparateur virgule est pratique pour rechercher différents  types
              de  choses  tout  en  ne  traversant  qu'une  fois l'arborescence du système de fichiers. L'action
              -fprintf peut être utilisée pour récupérer une  liste  d'éléments  variés  pour  les  ranger  dans
              différents fichiers en sortie.

       Veuillez  remarquer le -a, quand il est spécifié implicitement (par exemple par deux tests sans opérateur
       explicite  entre  eux)  ou  explicitement,  a  une  plus  haute  priorité  que  -o.  Cela  signifie   que
       find . -name fichier1 -o -name fichier2 -print n'affichera jamais fichier1.

NOMS DE FICHIERS PEU COURANTS

       Beaucoup  d'actions  de  find  finissent  par  afficher  des  données  qui sont sous le contrôle d'autres
       utilisateurs. Cela est vrai pour les noms de fichiers, les tailles, les dates de modification et ainsi de
       suite. Les noms de fichiers posent des problèmes potentiels puisqu'ils peuvent  contenir  n'importe  quel
       caractère,  à l'exception de « \0 » et « / ». Les caractères inhabituels dans les noms de fichier peuvent
       produire des résultats inattendus et souvent indésirables sur votre terminal  (modifier  les  définitions
       des  touches  de  fonctions de certains terminaux, par exemple). Les caractères inhabituels sont gérés de
       différentes façons selon les actions, selon la description ci-dessous.

       -print0, -fprint0
              Afficher toujours exactement le nom de fichier non modifié, même si la sortie est un terminal.

       -ls, -fls
              Tout caractère inhabituel est toujours protégé. Les espaces, les barres obliques inverses  et  les
              guillemets sont affichés selon les conventions des échappements du C (« \f »,« \" », par exemple).
              Tous  les autres caractères inhabituels sont affichés en utilisant une protection octale. Tous les
              autres caractères affichables (en ce qui concerne -ls et -fls, il s'agit des  caractères  dont  le
              code octal est compris entre 041 et 0176) sont affichés en l'état.

       -printf, -fprintf
              Si  la  sortie  n'est  pas un terminal, les caractères sont affichés en l'état. Sinon, le résultat
              dépend de la directive en cours d'utilisation. Les directives %D, %F, %g, %G, %H, %Y  et  %y  sont
              transformées  en  valeurs  non  contrôlées  par  les propriétaires des fichiers, et donc imprimées
              telles quelles. Les directives %a, %b, %c, %d, %i, %k, %m, %M, %n, %s, %t, %u et  %U  donnent  des
              valeurs  qui  sont  sous  le contrôle des propriétaires des fichiers, mais qui ne peuvent pas être
              utilisées pour envoyer des données arbitraires au  terminal,  elles  sont  donc  imprimées  telles
              quelles.  Les  directives %f, %h, %l, %p et %P sont protégées par des guillemets. Cette protection
              est appliquée à la manière du ls du GNU. Il ne s'agit pas du  même  mécanisme  de  protection  que
              celui  utilisé  pour  -ls  et  -fls. Si vous pouvez choisir le format à utiliser pour la sortie de
              find, sachez qu'il vaut mieux utiliser « \0 » plutôt que nouvelle ligne en tant  que  terminaison,
              car  les  noms de fichiers peuvent contenir des caractères espace ou nouvelle ligne. Le réglage de
              la variable d'environnement LC_CTYPE permet de définir la liste des caractères  qui  doivent  être
              protégés.

       -print, -fprint
              Les  guillemets  sont  gérés  à  la  manière de -printf et -fprintf. Si vous utilisez find dans un
              script ou dans un cas de figure particulier dans  lesquels  les  fichiers  correspondants  peuvent
              avoir des noms arbitraires, l'utilisation de -print0 devrait être préférée à -print.

       Les  actions  -ok  et -okdir affichent le nom du fichier traité tel qu'il est. Cela pourrait changer dans
       une version ultérieure.

CONFORMITÉ AUX STANDARDS

       Vous devriez définir la variable d'environnement POSIXLY_CORRECT pour une compatibilité au plus proche du
       standard POSIX. Les options suivantes sont définies dans le standard POSIX (IEEE Std 1003.1-2008, Édition
       2016) :

       -H     Cette option est gérée.

       -L     Cette option est gérée.

       -name  Cette option est gérée, mais la conformité à POSIX dépend de la conformité POSIX  de  la  fonction
              fnmatch(3)  de  la  bibliothèque  du  système. À compter de findutils-4.2.2, les métacaractères du
              shell (« * », « ? » ou « [] » par exemple) trouveront  les  fichiers  commençant  par  « . »,  car
              l'interprétation 126 d'IEEE PASC l'impose. Cela diffère des versions précédentes de findutils.

       -type  Gérée. POSIX stipule « b », « c », « d », « l », « p », « f » et « s ». GNU find gère aussi « D »,
              représentant  un  Door,  pour  les  systèmes d'exploitation qui le fournissent. En outre, GNU find
              permet de spécifier plusieurs types à la fois dans une liste séparée par des virgules.

       -ok    Gérée. L'interprétation de la réponse est soumise aux motifs « oui » ou « non » sélectionnés grâce
              au réglage de  la  variable  d'environnement  LC_MESSAGES.  Lorsque  la  variable  d'environnement
              POSIXLY_CORRECT  est  définie,  ces  schémas  sont  obtenus à partir de la définition des réponses
              positives (yes) et négatives  (no)  du  système.  Consultez  la  documentation  nl_langinfo(3)  du
              système,  et  notamment  YESEXPR  et NOEXPR. Lorsque POSIXLY_CORRECT n'est pas défini, ces schémas
              sont extraits du propre catalogue de messages de find.

       -newer Gérée. Si le fichier spécifié est un lien  symbolique,  il  est  toujours  déréférencé.  Cela  est
              différent  du  comportement précédent, qui utilisait l’horodatage correspondant du lien symbolique
              (consultez la section HISTORIQUE plus loin).

       -perm  Gérée. Si la variable d'environnement POSIXLY_CORRECT n'est pas  définie,  quelques  arguments  de
              mode  d'accès  (par  exemple  +a+x),  bien  que  non  valables  en  POSIX, sont gérés par souci de
              rétro-compatibilité.

       Autres primaires
              Les prédicats -atime, -ctime, -depth, -group, -links, -mtime, -nogroup,  -nouser,  -perm,  -print,
              -prune, -size, -user et -xdev sont tous gérés.

       Le  standard  POSIX  définit  les  parenthèses « ( », « ) », la négation « ! » et les opérateurs logiques
       AND/OR, -a et -o.

       Toutes les autres options, prédicats, expressions et ainsi de suite sont des extensions hors du  standard
       POSIX. Beaucoup de ces extensions ne sont de toutes façons pas l'apanage de GNU find.

       Le standard POSIX impose que find détecte les boucles.

              L'utilitaire find doit détecter les boucles infinies, telles que le retour dans un répertoire déjà
              visité  qui  est un parent du dernier fichier rencontré. Quand il détecte une boucle infinie, find
              doit afficher un message de diagnostic sur la sortie d'erreur et essayer de revenir à sa  position
              d'origine ou s'arrêter.

       La  commande find GNU est conforme à cette exigence. Le décompte des liens de répertoires qui contiennent
       des liens en dur vers des répertoires parents sera souvent inférieur à ce qu’il  serait  autrement.  Cela
       peut  signifier  que  GNU  find  optimise  parfois l'accès en évitant de parcourir un sous-répertoire qui
       s'avère être un lien vers un répertoire parent. Bien que find ne parcourt pas le répertoire dans  ce  cas
       précis,  il  permet  aussi  d'éviter  l'émission  d'un message d'avertissement. Cette façon de faire peut
       sembler génératrice d'erreurs, mais il est peu probable que quiconque puisse réellement en être gêné.  Si
       l'optimisation  du  parcours  des  feuilles  (NDT :  leaf) a été désactivée avec -noleaf, cette entrée du
       répertoire sera bel et bien parcourue, et le  message  d'avertissement  émis  si  nécessaire.  Les  liens
       symboliques  ne  peuvent pas servir à créer de telles boucles dans le système de fichiers, par contre, si
       les options -L ou -follow sont actives, alors un message de diagnostic sera émis quand  find  rencontrera
       une  boucle  de  liens  symboliques. Comme pour les boucles contenant des liens en dur, l'optimisation de
       parcours des feuilles signifie souvent que find sait qu'il n'a pas à appliquer stat() ou chdir()  sur  le
       lien symbolique et donc que ce diagnostic est souvent inutile.

       L'option  -d  est  gérée pour des raisons de compatibilité avec divers systèmes BSD, mais préférez plutôt
       l'utilisation de l'option -depth conforme à POSIX.

       Le positionnement de la variable d'environnement POSIXLY_CORRECT ne modifie pas le comportement des tests
       -regex ou -iregex parce que ces tests ne sont pas définis dans le standard POSIX.

VARIABLES D'ENVIRONNEMENT

       LANG   Fournit une valeur par défaut pour les variables de localisation  qui  ne  sont  pas  définies  ou
              nulles.

       LC_ALL Si  elle  contient  une  chaîne  de caractères non vide, remplace les valeurs de toutes les autres
              variables de localisation.

       LC_COLLATE
              Le standard POSIX exige que cette variable modifie le comportement de la  recherche  de  motifs  à
              l’œuvre  dans  l'option  -name.  Le GNU find utilise la fonction fnmatch(3) de la bibliothèque, et
              donc la gestion du LC_COLLATE dépend de la bibliothèque présente sur votre système. Cette variable
              affecte également l'interprétation de la réponse  à  -ok  ;  alors  que  la  variable  LC_MESSAGES
              sélectionne le motif effectivement utilisé pour interpréter la réponse à -ok, l'interprétation des
              expressions entre crochets dans le motif sera affectée par LC_COLLATE.

       LC_CTYPE
              Cette  variable  contrôle  le  traitement des classes de caractères utilisées dans les expressions
              rationnelles ainsi que dans le test -name, si la fonction fnmatch(3) fournie par  la  bibliothèque
              le  gère.  Cette  variable  altère  aussi  l'interprétation  de  toute  classe  de  caractères des
              expressions rationnelles utilisées pour analyser la réponse donnée aux questions posées  par  -ok.
              La  variable  d'environnement  LC_CTYPE  modifie aussi la liste des caractères dit non imprimables
              lors de l'affichage des noms de fichiers. Consultez la section NOMS DE FICHIERS PEU COURANTS.

       LC_MESSAGES
              Définit  la  locale  à  utiliser  pour  les  messages  internationalisés.  Lorsque   la   variable
              d'environnement  POSIXLY_CORRECT  est  définie, cela détermine aussi l'interprétation des réponses
              fournies aux questions posées par l'action -ok.

       NLSPATH
              Détermine l'endroit où sont rangés les catalogues de messages localisés.

       PATH   Détermine les répertoires dans  lesquels  find  cherchera  les  exécutables  invoqués  par  -exec,
              -execdir, -ok et -okdir.

       POSIXLY_CORRECT
              Détermine  la  taille des blocs utilisés par -ls et -fls. Si POSIXLY_CORRECT est défini, les blocs
              sont des unités de 512 octets. Sinon, il s'agit d'unités de 1024 octets.

              Définir cette variable désactive aussi  par  défaut  les  messages  d'avertissement  (c'est-à-dire
              entraîne  -nowarn),  puisque  POSIX  impose  que, sauf dans le cas de l'affichage de -ok, tous les
              messages affichés sur la sortie d’erreur doivent être des messages de  diagnostic  et  ne  doivent
              être générés que dans le cas d'une sortie avec un état différent de zéro.

              Lorsque  POSIXLY_CORRECT  n'est  pas  défini, -perm +zzz est géré de la même façon que -perm /zzz,
              lorsque +zzz n'est pas un mode symbolique valable. Lorsque POSIXLY_CORRECT est défini,  une  telle
              demande est considérée comme une erreur.

              Lorsque  POSIXLY_CORRECT est défini, la réponse aux questions posées par l'action -ok est analysée
              selon le catalogue des messages du système, et non selon les  propres  messages  du  catalogue  de
              find.

       TZ     Modifie  le  fuseau  horaire  utilisé  dans  le format de certaines directives liées au temps dans
              -printf et -fprintf.

EXEMPLES

   Approche simple de « find|xargs »
       -      Rechercher les fichiers nommés core dans le répertoire /tmp ou dans ses sous-répertoires, puis les
              effacer.

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

              Remarquez que cela ne fonctionnera pas bien si des noms de fichiers comportent des  retours  à  la
              ligne, des guillemets simples ou doubles ou des espaces.

   Approche plus sûre de « find -print0 | xargs -0 »
       -      Chercher  les  fichiers qui s'appellent core dans le répertoire /tmp et ses sous-répertoires, puis
              les effacer, en veillant à ce que les noms de fichiers  ou  de  répertoires  qui  contiennent  des
              guillemets simples ou doubles, des espaces ou des retours à la ligne soient correctement traités.

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

              Le test -name est effectué avant celui -type afin d'éviter un appel stat(2) sur tous les fichiers.

       Remarquez qu'il y a toujours un conflit entre le moment où find explore la hiérarchie et affiche les noms
       de fichiers trouvés et celui où le processus exécuté par xargs agit sur le fichier.

   Traitement de points de départ arbitraires
       -      Étant  donné  qu'un  autre  programme  programme exécute un pré-filtre et crée une énorme liste de
              fichiers séparés par des caractères NULL, les traiter comme points de départ et trouver  tous  les
              fichiers normaux parmi eux :

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

              L'utilisation  de  -files0-from - signifie lire les noms des points de départ à partir de l'entrée
              standard, c'est-à-dire par exemple d'un  tube,  et  -maxdepth 0  assure  que  seules  ces  entrées
              explicitement  désignées  seront  examinées sans parcours récursif dans les répertoires (au cas où
              une des points de départ est un répertoire).

   Exécuter une commande pour chaque fichier
       -      Exécuter fichier sur chaque fichier du répertoire actuel ou de ses sous-répertoires.

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

              Remarquez que les accolades sont entourées par des guillemets afin d'empêcher leur  interprétation
              en  tant  que ponctuation du script d'interpréteur. De la même façon, le point-virgule est protégé
              grâce à une barre oblique inverse, bien que l'apostrophe aurait aussi pu  être  utilisée  dans  ce
              cas.

       Dans  de  nombreux  cas, on pourrait préférer la syntaxe `-exec ... +`, voire même `-execdir ... +`, pour
       des raisons de performance et de sécurité.

   Explorer une fois le système de fichiers - pour deux actions différentes
       -      Parcourir le système de fichiers en une seule passe,  stockant  les  fichiers  et  répertoires  en
              setuid dans /root/suid.txt et les gros fichiers dans /root/grand.txt.

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

              Cet exemple utilise le caractère de suite de ligne '\' sur les deux premières lignes pour demander
              à l'interpréteur de continuer à lire la commande sur la ligne suivante.

   Rechercher des fichiers par leur âge
       -      Rechercher  les  fichiers  dans votre dossier personnel qui ont été modifiés pendant les dernières
              vingt-quatre heures.

                  $ find $HOME -mtime 0

              Cette commande s'exprime de cette façon parce que la  date  de  dernière  modification  de  chaque
              fichier  est  découpée en tranche de 24 heures et le reliquat est éliminé. Cela veut dire que pour
              correspondre à -mtime 0, un fichier doit  avoir  une  antériorité  de  modification  inférieure  à
              24 heures.

   Rechercher les fichiers par leurs permissions
       -      Rechercher les fichiers qui offrent le droit d'exécution, mais qui ne sont pas lisibles.

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

       -      Rechercher les fichiers qui ont la permission de lire et d'écrire pour leur propriétaire et groupe
              et que les autres utilisateurs ne peuvent que lire.

                  $ find . -perm 664

              Les  fichiers  qui  satisfont ces critères, mais qui ont d'autres bits de permissions activés (par
              exemple si le fichier est exécutable par quelqu'un) ne seront pas sélectionnés.

       -      Rechercher les fichiers qui ont la permission de lire et d'écrire pour leur propriétaire  et  leur
              groupe  et  que  les  autres  utilisateurs peuvent lire, sans toutefois s'intéresser à la présence
              d'autres bits de permissions (le bit d'exécution par exemple).

                  $ find . -perm -664

              Cela trouvera un fichier dont le mode est, par exemple, 0777.

       -      Rechercher les fichiers qui offrent le droit d'écriture  à  quelqu'un  (son  propriétaire  ou  son
              groupe, ou bien n'importe qui).

                  $ find . -perm /222

       -      Rechercher les fichiers qui offrent le droit d'écriture à leur propriétaire ou à leur groupe.

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

              Ces  commandes  font  toutes  les trois la même chose, mais la première utilise le mode octal pour
              représenter les modes du fichier, alors que les deux autres se servent de la forme symbolique. Ces
              fichiers n'ont pas à offrir à la fois le droit d'écriture au propriétaire et au  groupe,  l'un  ou
              l'autre suffira.

       -      Rechercher les fichiers qui offrent le droit d'écriture à leur propriétaire et à leur groupe.

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

              Ces deux commandes font la même chose.

       -      Une recherche plus élaborée à partir des permissions.

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

              Ces  commandes  recherchent  toutes les deux les fichiers qui sont lisibles par tous (perm -444 ou
              -perm -a+r), ont au moins un des bits d'écriture actif (-perm /222 ou -perm  /a+w),  mais  qui  ne
              sont exécutables par personne (respectivement ! -perm /111 et ! -perm /a+x).

   Découper  omettre des fichiers et des sous-répertoires
       -      Copier  le  contenu  de  répertoire-source  dans répertoire-cible, en omettant les fichiers ou les
              répertoires nommés .snapshot (et tout ce qu'ils contiennent). Cela omet aussi les fichiers ou  les
              répertoires dont le nom se termine par « ~ », mais pas les autres contenus.

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

              La structure -prune -o \( ... -print0 \) est très connue. L'idée ici, c'est que l'expression avant
              -prune indique les fichiers à couper. Toutefois, l'action -prune renvoie vrai, donc le -o qui suit
              n'applique  l'expression  à sa droite que sur les répertoires qui n'ont pas été coupés (le contenu
              des répertoires  coupés  n'est  même  pas  consulté,  leur  contenu  n'est  donc  pas  pertinent).
              L'expression  à droite du -o est entre parenthèses pour des raisons de clarté uniquement. L'accent
              est mis ici sur le fait que l'action -print0 ne s'exécute que pour les items  qui  n'ont  pas  été
              coupés  par -prune. Le « et  » implicite entre les conditions de tests est plus prioritaire que le
              -o, mais les parenthèses aident à comprendre ce qu'il se passe ici.

       -      Étant donné les répertoires de projets suivants  et  les  répertoires  d'administration  de  leurs
              systèmes  de  gestion  de  configuration,  effectuer  une  recherche efficace dans les racines des
              projets :

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

              Exemple de sortie :

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

              Dans cet exemple, -prune évite l'inutile inspection des répertoires qui ont  déjà  été  découverts
              (ne cherche pas par exemple dans project3/src puisqu'il a déjà été trouvé dans project3/.svn) tout
              en s'assurant que les répertoires frères (project2 et project3) le sont.

   Autres exemples utiles
       -      Rechercher plusieurs types de fichiers.

                  $ find /tmp -type f,d,l

              Rechercher  des  fichiers,  des  répertoires  et  des liens symboliques dans le répertoire /tmp en
              passant ces types sous forme de liste séparée  par  des  virgules  (extension  GNU),  ce  qui  est
              équivalent à la commande plus longue mais plus portable :

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

       -      Rechercher  les  fichiers  du  nom particulier needle et arrêter immédiatement dès qu'on trouve le
              premier.

                  $ find / -name needle -print -quit

       -      Démonstration de l'interprétation des directives de format %f  et  %h  de  l'action  -printf  dans
              certains cas de niche. Voici un exemple comprenant une sortie.

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

CODE DE RETOUR

       find  s'arrête en renvoyant la valeur de retour 0 si tous les fichiers ont été traités avec succès, ou en
       renvoyant une valeur supérieure à 0 si une erreur est survenue. Cette information est volontairement très
       floue. Considérez simplement qu'en cas de valeur de retour différente de zéro, vous  ne  devez  pas  vous
       fier à l'exactitude des résultats fournis par find.

       Quand  une erreur se produit, find peut s'arrêter immédiatement sans terminer les actions spécifiées. Par
       exemple, il se peut que certains points de départ ne soient pas examinés ou que des appels en attente  de
       programmes par -exec ... {} + ou -execdir ... {} + ne se fassent pas.

HISTORIQUE

       Le  programme  find  est  apparu  dans  la  version  5  d'Unix faisant partie du « Programmer's Workbench
       project » et a été écrit par Dick Haight. Le manuel de Doug McIlroy A Research UNIX  Reader  :  Annotated
       Excerpts  from  the  Programmer’s  Manual,  1971-1986  fournit  quelques détails supplémentaires ; il est
       possible de le lire en ligne à <https://www.cs.dartmouth.edu/~doug/reader.pdf>.

       GNU find a été écrit à l'origine par Eric Decker et amélioré par David MacKenzie, Jay Plett et Tim  Wood.
       L'idée pour find -print0 et xargs -0 vient de Dan Bernstein.

COMPATIBILITÉ

       À  partir  de  findutils-4.2.2, les métacaractères de l'interpréteur (« * », « ? » ou « [] » par exemple)
       utilisés dans les motifs des noms de fichier trouveront les  fichiers  commençant  par  « . »  parce  que
       l'interprétation 126 d'IEEE POSIX l'impose.

       À partir de findutils-4.3.3, -perm /000 explore maintenant tous les fichiers plutôt qu'aucun.

       La gestion des nanosecondes dans les horodatages a été implémentée dans findutils-4.3.3.

       L'action  -delete  force  find  à  envoyer  un  code  de  retour  non  nul  en  cas  d'échec  à partir de
       findutils-4.3.11. Toutefois, find ne s'interrompra pas immédiatement. Dans les versions  précédentes,  le
       code de retour de find n'était pas modifié par l'échec de -delete.
       Fonctionnalités        Ajoutées   Présentes aussi dans
       -files0-from           4.9.0
       -newerXY               4.3.3      BSD
       -D                     4.3.1
       -O                     4.3.1
       -readable              4.3.0
       -writable              4.3.0
       -executable            4.3.0
       -regextype             4.2.24
       -exec ... +            4.2.12     POSIX
       -execdir               4.2.12     BSD
       -okdir                 4.2.12
       -samefile              4.2.11
       -H                     4.2.5      POSIX
       -L                     4.2.5      POSIX
       -P                     4.2.5      BSD
       -delete                4.2.3
       -quit                  4.2.3
       -d                     4.2.3      BSD
       -wholename             4.2.0
       -iwholename            4.2.0
       -ignore_readdir_race   4.2.0
       -fls                   4.0
       -ilname                3.8
       -iname                 3.8
       -ipath                 3.8
       -iregex                3.8

       La  syntaxe  -perm  +MODE a été supprimée dans findutils-4.5.12, pour -perm /MODE. La syntaxe +MODE était
       obsolète depuis findutils-4.2.21 qui a été publié en 2005.

FAUX BOGUES

   Surprises avec la précédence d'un opérateur
       La commande find . -name fichier1 -o -name fichier2 -print n'affichera jamais fichier1, car elle  revient
       en  fait à find . -name fichier1 -o \( -name fichier2 -a -print \). Rappelez-vous que la précédence de -a
       est supérieure à celle de -o et quand aucun opérateur n'est spécifié entre les tests, -a est présumé.

   Message d’erreur “paths must precede expression”
       $ find . -name *.c -print
       find: paths must precede expression
       find: possible unquoted pattern after predicate `-name'?

       Cela arrive quand l'interpréteur pourrait développer le motif *.c à plus d'un  nom  de  fichier  existant
       dans  le répertoire actuel et le passage des noms de fichier qui en résultent à la ligne de commande find
       devient :
       find . -name frcode.c locate.c word_io.c -print
       Cette commande ne va bien entendu pas fonctionner, car le prédicat -name ne permet exactement qu'un motif
       en argument. Plutôt que de faire comme ça, vous devriez encapsuler  le  motif  entre  des  guillemets  ou
       échapper  les jokers, permettant ainsi à find d'utiliser le motif avec le joker lors de la recherche d'un
       nom de fichier correspondant, au lieu des noms de fichier développés par l'interpréteur parent :
       $ find . -name '*.c' -print
       $ find . -name \*.c -print

BOGUES

       Des problèmes de sécurité se posent, inhérents au comportement de find tel que  défini  par  le  standard
       POSIX,  et  qui  ne  peuvent  donc être résolus. Par exemple, l'action -exec est dangereuse par nature et
       l'utilisation de -execdir est préférable.

       La variable d'environnement LC_COLLATE n'a aucun effet sur l'action -ok.

SIGNALER DES BOGUES

       Aide en ligne de GNU coreutils : <https://www.gnu.org/software/findutils/#get-help>
       Signaler toute erreur de traduction à <https://translationproject.org/team/fr.html>

       Signaler toute autre erreur au moyen du système de suivi de bogues GNU Savannah :
              <https://savannah.gnu.org/bugs/?group=findutils>
       Les sujets généraux concernant  le  paquet  GNU  findutils  sont  discutés  sur  la  liste  de  diffusion
       bug-findutils :
              <https://lists.gnu.org/mailman/listinfo/bug-findutils>

COPYRIGHT

       Copyright  ©  1990–2024  Free  Software Foundation, Inc. Licence GPLv3+ : GNU GPL version 3 ou supérieure
       <https://gnu.org/licenses/gpl.html>.
       Ce programme est un logiciel libre. Vous pouvez le modifier et le redistribuer. Il n'y a AUCUNE  GARANTIE
       dans la mesure autorisée par la loi.

VOIR AUSSI

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

       Documentation complète : <https://www.gnu.org/software/findutils/find>
       aussi disponible localement à l’aide de : info find

TRADUCTION

       La traduction française de cette page de manuel a été créée  par  Florentin  Duneau  <fduneau@gmail.com>,
       Jean-Luc   Coulon  (f5ibh)  <jean-luc.coulon@wanadoo.fr>,  Sylvain  Cherrier  <sylvain.cherrier@free.fr>,
       Nicolas François  <nicolas.francois@centraliens.net>,  Jean-Philippe  MENGUAL  <jpmengual@debian.org>  et
       Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General Public License
       version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel,  veuillez  envoyer  un  message  à
       debian-l10n-french@lists.debian.org.

                                                                                                         FIND(1)