dwww Home | Manual pages | Find package

FIND(1)                     General Commands Manual                    FIND(1)

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  par-
       court  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 utili-
       sateurs), 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ée
       comme une source d'informations plus utile.

OPTIONS
       Les options -H, -L et -P contrôlent  le  traitement  des  liens  symbo-
       liques.  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éper-
       toire 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'inter-
       préteur  appelant  ne  soient  malencontreusement traités comme des pa-
       ramè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érale-
       ment  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  symbo-
              lique, 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 sym-
              bolique 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 abou-
              tir à 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  af-
              fiche  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 indi-
              qué 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  com-
              mande  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  com-
       mande  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 fi-
       chiers  listés  sur  la ligne de commande et le fichier en cours d'ana-
       lyse. 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émo-
       risé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  com-
       mande  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  pra-
              tique  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  com-
              prennent

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

              opt    Afficher des informations de diagnostic liées à l'optimi-
                     sation 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 ba-
                     varde.

              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éorga-
              nise 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 modi-
              fier ceux qui ont des effets de bord. Les  optimisations  réali-
              sées à chacun des niveaux sont les suivantes.

              0      Équivalent au niveau 1 d'optimisation.

              1      Niveau  d'optimisation  par défaut. Il correspond au com-
                     portement 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 pre-
                     mier, 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édi-
                     cats sont évalués plus ou moins tôt selon  leur  probabi-
                     lité  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 probabi-
              lité 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  optimisa-
              tions 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  ver-
              sions  de  la série 4.3.x. La suite de tests unitaires de findu-
              tils est exécutée sur chacun des niveaux d'optimisation de  find
              afin de s'assurer que le résultat est constant.

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'ac-
              tions spécifiées n'importe où sur la ligne de commande. Les  op-
              tions  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 ac-
              tions qui les suivent. Les options de  position  renvoient  tou-
              jours  vrai.  Par exemple, l'option -regextype est une option de
              position qui spécifie le dialecte de l'expression régulière  in-
              tervenant plus tard sur la ligne de commande.

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

       L'action -print s'effectue sur tous les fichiers  pour  lesquels  l'ex-
       pression  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  indi-
              qué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 appa-
              rition 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  pa-
              ramètre  de -newer sera déréférencé s'il s'agit d'un lien symbo-
              lique. La même remarque s'applique à -newerXY, -anewer et  -cne-
              wer.  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 tou-
              jours faux lorsqu'on utilise -follow.

       -regextype type
              Définir la syntaxe de l'expression rationnelle des tests  -regex
              et  -iregex  qui  seront indiqués plus loin sur la ligne de com-
              mande. Pour voir les types d'expression régulière connus, utili-
              sez  -regextype help.  La  documentation  de  Texinfo (voir VOIR
              AUSSI) explique la signification et les  différences  entre  les
              différents types d'expression régulière.

       -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'utilisa-
              tion 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  ac-
       tion.  Si  vous spécifiez une option globale ailleurs, find produira un
       message d'avertissement pour dire que cela peut  entraîner  des  confu-
       sions.

       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'obte-
              nir  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 fi-
              chier, 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'exluent 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éper-
              toires 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 vi-
              sité plus d'une fois. Si le fichier est déplacé pendant le fonc-
              tionnement de find, le résultat n'est pas précisé non plus.  En-
              fin,  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ésac-
              tivé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. -max-
              depth 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 pro-
              fondeur inférieurs à n (un entier non négatif). n est un  entier
              positif  ou  nul.  -mindepth 1 signifie que les tests et les ac-
              tions 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  phy-
              siques.  Cette  option  est nécessaire lorsque l'on parcourt des
              systèmes de fichiers ne suivant pas les conventions Unix concer-
              nant  les  liens  de répertoires, comme les systèmes MS-DOS, les
              CD-ROM ou les points de montage de volumes  AFS.  Chaque  réper-
              toire  sur  un  système de fichiers Unix dispose d'au moins deux
              liens physiques, son nom et « . ». De plus,  chaque  sous-réper-
              toire 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  indi-
       qué  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 symbo-
              lique 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  al-
              tè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 ar-
              tefacts de permissions sont pris en compte, à l'inverse du  test
              -perm  qui, lui, les ignore. Ce test utilise l'appel système ac-
              cess(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écu-
              table.

       -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 ver-
              sion  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??? »  corres-
              pondent  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  -sa-
              mefile.

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

       -iregex motif
              Semblable à -regex, mais sans différencier les majuscules 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 phy-
              siques.

       -lname motif
              Fichier représentant un lien symbolique, dont le contenu corres-
              pond au motif indiqué. Lors du développement des métacaractères,
              « / » et « . » ne sont pas traités différemment des  autres  ca-
              ractè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'inter-
              prétation des dates de modification des fichiers.

       -name motif
              Fichier dont le nom de base (chemin sans le  répertoire  parent)
              correspond  au motif du shell. Les répertoires parent étant sup-
              primés, les noms de fichier englobés  dans  une  recherche  avec
              -name n'incluront jamais de barre oblique, donc « -name a/b » ne
              trouvera rien (vous devrez probablement utiliser plutôt  -path).
              Un  avertissement  apparaît si vous essayez de le faire, sauf si
              la variable d'environnement POSIXLY_CORRECT est définie. Les mé-
              tacaractères (« * », « ? », et « [] ») peuvent correspondre à un
              point « . » au début du nom du fichier (c'est une  évolution  de
              findutils-4.2.2,  consultez  la section CONFORMITÉ AUX STANDARDS
              ci-dessous). Pour ignorer un répertoire, ainsi que tous ses  fi-
              chiers,  utilisez  l'option -prune plutôt que de vérifier chaque
              fichier de l’arbre (vous trouverez un exemple dans  la  descrip-
              tion  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  obte-
              nue  par  l'utilisation  de la fonction fnmatch(3) de la biblio-
              thèque. N'oubliez pas de protéger votre motif entre des  guille-
              mets afin d'éviter le développement des métacaractères par l'in-
              terpré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 cer-
              tains 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étacarac-
              tè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  corres-
              pondra 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 com-
              mande). 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 cor-
              respondance  stricte  est requise, si vous voulez utiliser cette
              forme de modes symboliques, vous risquez d'être obligé  d'utili-
              ser  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  de-
              vez indiquer « u », « g » ou « o » si vous utilisez un mode sym-
              bolique. 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  de-
              vez indiquer « u », « g » ou « o » si vous utilisez un mode sym-
              bolique. 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). Utili-
              sez 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'in-
              verse  du test -perm qui, lui, les ignore. Ce test utilise l'ap-
              pel 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 ration-
              nelles « .*bar. » ou « .*b.*3 », mais pas « f.*r3 ». Les expres-
              sions  rationnelles  comprises par find sont, par défaut, celles
              d'Emacs (excepté que « . » correspond avec retour ligne).  L'op-
              tion -regextype permet d'en changer.

       -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   kilooctets  informatiques  (KiO,  unités  de
                     1024 octets)

              « M »  Pour des mégaoctets informatiques (MiO, unités de 1024  *
                     1024 = 1048576 octets)

              « G »  pour  des gigaoctets informatiques (GiO, unités de 1024 *
                     1024 * 1024 = 1073741824 octets)

              La taille est simplement le membre st_size de  struct stat  rem-
              plie par l'appel système lstat (ou stat), arrondie à l'unité su-
              périeure comme décrit ci-dessus. En d'autres termes, il est  co-
              hérent avec le résultat de ls -l. Souvenez-vous que les spécifi-
              cateurs de format « %k » et « %b » de -printf  gèrent  différem-
              ment  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  cor-
              respond  pas. Retenez que la taille est arrondie à l'unité supé-
              rieure. Donc -size -1M n'équivaut pas à -size -1048576c. Le pre-
              mier  ne correspond qu'à des fichiers vides, le second à des fi-
              chiers 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      directory

              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  symbo-
                     liques 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 utili-
              sateur 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'in-
              verse  du test -perm qui, lui, les ignore. Ce test utilise l'ap-
              pel 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é ser-
              veur.

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

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

   ACTIONS
       -delete
              Effacer  les  fichiers  ou  les  repertoires et renvoyer vrai si
              l'effacement a réussi. Si l'effacement échoue, un message  d'er-
              reur  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 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 de ces tests.

              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éper-
              toire  parent  a été lu : il n'affichera pas de diagnostic d'er-
              reur, 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éve-
              loppement  de la ligne de commande par l'interpréteur, en utili-
              sant 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écu-
              té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éper-
              toire  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 ren-
              voie 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 plu-
              sieurs  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édiate-
              ment,  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  ren-
              voie 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 FI-
              CHIERS 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  respective-
              ment  à  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  inhabi-
              tuels 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 FI-
              CHIERS 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 FI-
              CHIERS 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 COU-
              RANTS pour obtenir des informations sur la  gestion  des  carac-
              tères inhabituels dans les noms de fichier.

       -ok commande ;
              Comme  -exec, mais interroger d'abord l'utilisateur. Si l'utili-
              sateur acquiesce, la commande est lancée. Sinon, le test devient
              faux. Si la commande est lancée, son entrée standard est rediri-
              gé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 expres-
              sions 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  appro-
              prié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 rediri-
              gé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 stan-
              dard, 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  stan-
              dard,  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 direc-
              tives 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     Saut de 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. Cer-
                     tains  caractères  de  spécification  de conversion pour-
                     raient 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 fraction-
                            né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 ex-
                            tension GNU. L'heure est donnée dans la  zone  ho-
                            raire 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 fu-
                            seau 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  lon-
                            gueur 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 (mm/jj/aaaa)

                     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-ja-
                     cents 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éper-
                     toires, 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  fi-
                     chier.  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  oc-
                     tal).  Cette option utilise les nombres « traditionnelle-
                     ment »  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  habituelle-
                     ment 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  le-
                     quel il a été trouvé.

              %s     Taille du fichier en octets.

              %S     Densité  du  fichier,  calculée  par  la  formule TAILLE-
                     BLOC*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 sys-
                     tè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  fi-
                     chier.

              %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  symbo-
                     liques : « 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 af-
              ficher  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'ap-
              plique qu'au contenu des répertoires coupés,  tandis  que  -quit
              arrête  simplement  find immédiatement. Aucune exécution de pro-
              cessus 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  in-
              diqué  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 inter-
              pré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  explici-
       tement,   a   une  plus  haute  priorité  que  -o.  Cela  signifie  que
       find . -name fichier1 -o -name fichier2 -print n'affichera  jamais  fi-
       chier1.

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  termi-
       naux,  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  ca-
              ractè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 va-
              leurs 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 uti-
              liser « \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  sui-
       vantes sont définies dans le standard POSIX (IEEE Std 1003.1-2008, Édi-
       tion 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 fi-
              chiers commençant par « . »,  car  l'interprétation  126  d'IEEE
              PASC  l'impose.  Cela diffère des versions précédentes de findu-
              tils.

       -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 sys-
              tè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  symbo-
              lique (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é, alors qu'on revient du
              dernier  fichier rencontré. Quand il détecte une boucle infinie,
              find doit afficher un message de diagnostic sur la sortie  d'er-
              reur et essayer de revenir à sa position d'origine ou s'arrêter.

       La  commande find du GNU est conforme à cette exigence. Le décompte des
       liens dans un répertoire qui contient des liens en dur vers des  réper-
       toires parent sera souvent inférieur à celui attendu. Cela peut être dû
       au fait que GNU find  optimise  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 per-
       met 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 par-
       cours 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'aver-
       tissement émis si nécessaire. Les liens symboliques ne peuvent pas ser-
       vir  à créer de telles boucles dans le système de fichiers, par contre,
       si les options -L ou -follow sont actives, alors un message  d'avertis-
       sement  sera  émis  quand  find  rencontrera une boucle de liens symbo-
       liques. Comme pour les boucles contenant des liens en dur,  l'optimisa-
       tion  de  parcours  des feuilles (NDT : leaf) 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 mo-
       difie 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 comporte-
              ment 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 biblio-
              thèque le gère. Cette variable altère aussi l'interprétation  de
              toute  classe  de caractères des expressions rationnelles utili-
              sé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 internationali-
              sés. Lorsque la variable d'environnement POSIXLY_CORRECT est dé-
              finie,  cela détermine aussi l'interprétation des réponses four-
              nies 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  PO-
              SIXLY_CORRECT  est  défini, les blocs sont des unités de 512 oc-
              tets. 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 mes-
              sages 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 po-
              sées  par  l'action -ok est analysée selon le catalogue des mes-
              sages 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 fi-
              chiers 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  conti-
              nuer à 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 uti-
              lisateurs 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  pre-
              mière  utilise  le  mode octal pour représenter les modes du fi-
              chier, alors que les deux autres se servent de la  forme  symbo-
              lique.  Ces  fichiers  n'ont  pas  à  offrir  à la fois le droit
              d'écriture au propriétaire et au groupe, l'un  ou  l'autre  suf-
              fira.

       •      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  rai-
              sons  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éper-
              toires d'administration de leurs systèmes de gestion de configu-
              ration,  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éper-
              toires  qui  ont déjà été découverts (ne cherche pas par exemple
              dans  project3/src  puisqu'il  a  déjà  été  trouvé  dans   pro-
              ject3/.svn)  tout en s'assurant que les répertoires frères (pro-
              ject2 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  symbo-
              liques  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 im-
              mé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 four-
       nis 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
       À 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'in-
       terprétation 126 d'IEEE POSIX l'impose.

       À partir de findutils-4.3.3, -perm /000 explore maintenant tous les fi-
       chiers 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 statut de sortie non nul en
       cas d'échec, à partir de findutils-4.3.11. Toutefois, find ne  s'inter-
       rompra pas immédiatement. Dans les versions précédentes, l’état de sor-
       tie de find n'était pas modifié par l'échec de -delete.

       Fonctionnalités        Ajoutées   Se passe 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 pas-
       sage 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éso-
       lus. Par exemple, l'action -exec est dangereuse par nature et  l'utili-
       sation 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/findu-
       tils/#get-help>
       Signaler   toute   erreur   de  traduction  à  <https://translationpro-
       ject.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-2022 Free Software Foundation,  Inc.  License  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 re-
       distribuer. 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 Floren-
       tin  Duneau <fduneau@gmail.com>, Jean-Luc Coulon (f5ibh) <jean-luc.cou-
       lon@wanadoo.fr>, Sylvain Cherrier  <sylvain.cherrier@free.fr>,  Nicolas
       François <nicolas.francois@centraliens.net>, Jean-Philippe MENGUAL <jp-
       mengual@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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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)

Generated by dwww version 1.15 on Sat Jun 29 01:46:39 CEST 2024.