Provided by: manpages-fr_4.15.0-9_all bug

NOM

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

SYNOPSIS

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

DESCRIPTION

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

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

OPTIONS

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              help   Décrire les options de débogage.

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

              0      Équivalent au niveau 1 d'optimisation.

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

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

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

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

EXPRESSIONS

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

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

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

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

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

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

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

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

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

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

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

       -regextype type
              Définir la syntaxe de l'expression rationnelle des  tests  -regex  et  -iregex  qui
              seront  indiqués  plus  loin  sur  la  ligne  de  commande.  Pour  voir  les  types
              d'expression  régulière  connus,  utilisez  -regextype help.  La  documentation  de
              Texinfo  (voir  VOIR  AUSSI) explique la signification et les différences entre les
              différents types d'expression 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'utilisation  de  la  ligne  de
              commande,   l’état   de   sortie   de  find  n'est  pas  affecté.  Si  la  variable
              d'environnement POSIXLY_CORRECT est définie et si -warn est utilisé,  rien  ne  dit
              quels messages d'avertissement seront actifs s'il y en a.

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

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

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

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

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

              Utiliser cette option et passer les points de départ en ligne de commande s'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épertoires sauf indication  contraire.  Pour
              ne  traiter  que  les  points  de  départ,  il  est  possible  de passer l'argument
              -maxdepth 0 en plus.

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

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

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

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

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

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

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

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

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

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

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

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

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

       +n     supérieur à n,

       -n     inférieur à n,

       n      strictement égal à n.

       Tests pris en charge :

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

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

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

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

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

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

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

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

       -false Toujours faux.

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

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

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

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

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

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

       -ipath motif
              Semblable à -path, mais sans différencier les 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 physiques.

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

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

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

       -name motif
              Fichier  dont le nom de base (chemin sans le répertoire parent) correspond au motif
              du shell. Les répertoires parent étant supprimé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 fichiers, utilisez l'option -prune plutôt
              que de vérifier chaque fichier de  l’arbre  (vous  trouverez  un  exemple  dans  la
              description  de  cette  action).  Les parenthèses ne sont pas considérées comme des
              caractères spéciaux, bien que certains interpréteurs de commandes  (dont  le  Bash)
              attribuent  aux  parenthèses  un rôle particulier. La correspondance avec le nom du
              fichier est obtenue par l'utilisation de la fonction fnmatch(3) de la bibliothèque.
              N'oubliez  pas  de  protéger  votre  motif  entre  des  guillemets afin d'éviter le
              développement des métacaractères par l'interpréteur de commandes.

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

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

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

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

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

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

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

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

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

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

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

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

       -regex motif
              Nom de fichier correspondant à l'expression  rationnelle  motif.  Il  s'agit  d'une
              correspondance sur le chemin complet, pas d'une recherche. Par exemple, pour mettre
              en  correspondance  un  fichier  nommé  « ./fubar3 »,  vous  pouvez  utiliser   les
              expressions   rationnelles  « .*bar. »  ou  « .*b.*3 »,  mais  pas  « f.*r3 ».  Les
              expressions rationnelles comprises  par  find  sont,  par  défaut,  celles  d'Emacs
              (excepté  que  « . » correspond avec retour ligne). L'option -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 remplie par l'appel
              système lstat (ou stat), arrondie à l'unité supérieure comme décrit  ci-dessus.  En
              d'autres  termes,  il est cohérent avec le résultat de ls -l. Souvenez-vous que les
              spécificateurs de format « %k »  et  « %b »  de  -printf  gèrent  différemment  les
              fichiers  creux. Le suffixe « b » décompte toujours des blocs de 512 octets, jamais
              de 1024 octets, contrairement au comportement de -ls.

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

       -true  Toujours vrai.

       -type c
              Fichier du type c :

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

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

              d      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 symboliques alors que -L est actif, utilisez -xtype.

              s      socket

              D      Door (Solaris)

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

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

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

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

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

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

       -xtype c
              Semblable à -type sauf si le  fichier  est  un  lien  symbolique.  Pour  les  liens
              symboliques,  si  les  options  -H ou -P ont été spécifiées, le test est vrai si le
              fichier pointé par le lien est de type c ; si l'option -L a été spécifiée, le  test
              est vrai si c vaut « l ». Autrement dit, pour les liens symboliques, -xtype vérifie
              le type des fichiers que l'option -type ne vérifie pas.

       -context motif
              (SELinux seulement) le contexte de sécurité du fichier correspond 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'erreur est envoyé et le code de retour de find
              sera différent de zéro (quand finalement il s'interrompt).

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

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

              Souvent, l'utilisateur voudrait tester une recherche  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épertoire parent a été lu : il n'affichera
              pas de diagnostic  d'erreur,  ne  changera  pas  le  code  d'erreur  à  une  valeur
              différente de zéro, et le code de retour de l'action -delete sera vrai.

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

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

       -execdir commande ;

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

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

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

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

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

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

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

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

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

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

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

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

              \a     Sonnerie.

              \b     Effacement arrière (Backspace).

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

              \f     Saut de page.

              \n     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. Certains  caractères
                     de  spécification  de conversion pourraient ne pas être disponibles sur tous
                     les systèmes, à  cause  des  différences  entre  les  fonctions  strftime(3)
                     existantes.

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

                     Champs horaires :

                     H      heure (00..23)

                     I      heure (01..12)

                     k      Heure (0..23)

                     l      Heure (1..12)

                     M      minute (00..59)

                     p      AM ou PM, avec la désignation locale

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

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

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

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

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

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

                     Champs de date :

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

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

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

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

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

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

                     D      Date (mm/jj/aa)

                     F      date (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-jacents ne gèrent pas les dates de création.

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

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

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

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

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

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

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

              %G     Identifiant de groupe numérique du fichier.

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

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

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

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

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

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

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

              %n     Nombre de liens physiques sur le fichier.

              %p     Nom du fichier.

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

              %s     Taille du fichier en octets.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       expr1 -a expr2
              Identique à expr1 expr2.

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

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

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

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

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

NOMS DE FICHIERS PEU COURANTS

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

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

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

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

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

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

CONFORMITÉ AUX STANDARDS

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

       -H     Cette option est gérée.

       -L     Cette option est gérée.

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

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

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

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

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

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

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

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

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

              L'utilitaire find doit détecter les boucles infinies, telles que le retour dans  un
              répertoire  déjà visité, 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'erreur 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épertoires  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 permet aussi
       d'éviter l'émission d'un message  d'avertissement.  Cette  façon  de  faire  peut  sembler
       génératrice  d'erreurs,  mais  il est peu probable que quiconque puisse réellement en être
       gêné. Si l'optimisation du parcours des  feuilles  (NDT :  leaf)  a  été  désactivée  avec
       -noleaf,   cette  entrée  du  répertoire  sera  bel  et  bien  parcourue,  et  le  message
       d'avertissement émis si nécessaire. Les liens symboliques ne peuvent pas servir à créer de
       telles  boucles dans le système de fichiers, par contre, si les options -L ou -follow sont
       actives, alors un message d'avertissement sera émis quand find rencontrera une  boucle  de
       liens  symboliques.  Comme  pour les boucles contenant des liens en dur, l'optimisation de
       parcours des feuilles (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  modifie pas le
       comportement des tests -regex ou -iregex parce que ces tests ne sont pas définis  dans  le
       standard POSIX.

VARIABLES D'ENVIRONNEMENT

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

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

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

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

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

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

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

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

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

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

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

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

EXEMPLES

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  $ find $HOME -mtime 0

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

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

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

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

                  $ find . -perm 664

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

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

                  $ find . -perm -664

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

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

                  $ find . -perm /222

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

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

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

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

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

              Ces deux commandes font la même chose.

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

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

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

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

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

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

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

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

              Exemple de sortie :

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

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

   Autres exemples utiles
       •      Rechercher plusieurs types de fichiers.

                  $ find /tmp -type f,d,l

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

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

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

                  $ find / -name needle -print -quit

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

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

CODE DE RETOUR

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

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

HISTORIQUE

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

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

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

       L'action -delete force find à envoyer un statut de sortie non nul en cas d'échec, à partir
       de findutils-4.3.11. Toutefois, find ne s'interrompra pas immédiatement. Dans les versions
       précédentes, l’état de sortie 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  passage  des  noms  de  fichier  qui  en
       résultent à la ligne de commande find devient :
       find . -name frcode.c locate.c word_io.c -print
       Cette  commande  ne  va  bien  entendu  pas  fonctionner,  car le prédicat -name ne permet
       exactement qu'un motif en argument. Plutôt que de faire comme ça, vous devriez  encapsuler
       le  motif  entre des guillemets ou échapper les jokers, permettant ainsi à find d'utiliser
       le motif avec le joker lors de la recherche d'un nom de fichier correspondant, au lieu des
       noms de fichier développés par l'interpréteur parent :
       $ find . -name '*.c' -print
       $ find . -name \*.c -print

BOGUES

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

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

SIGNALER DES BOGUES

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

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

COPYRIGHT

       Copyright © 1990-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 redistribuer. Il n'y a
       AUCUNE GARANTIE dans la mesure autorisée par la loi.

VOIR AUSSI

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

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

TRADUCTION

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

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨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)