Provided by: manpages-fr_4.13-4_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 « / ».

       -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  les  opérations  de  test  et  d'action  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.

       -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 -newerXYet -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 plus loin). 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'inode 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 -perm g=w,  par  exemple,  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
              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 inode 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  et  renvoyer vrai si l'effacement a réussi. Si l'effacement
              échoue, un message d'erreur est envoyé. Si -delete échoue, le  code  de  retour  de
              find  sera  différent  de zéro (quand finalement il s'interrompt). L'utilisation de
              l'action -delete active automatiquement l'option -depth.

              Attention : N'oubliez pas que la ligne de commande de find est  évaluée  comme  une
              expression.  Écrire -delete en premier forcera find à essayer d'effacer tout ce qui
              se trouve dans les points de départ que vous avez indiqué. Lorsque vous testez  une
              ligne  de  commande  de  find qui utilisera -delete, vous devriez préciser l'option
              -depth afin d'éviter les surprises plus tard. Puisque -delete entraîne -depth, vous
              ne pouvez pas utiliser en même temps -prune et -delete.

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

              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.

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

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

   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
       -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-2021 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>
       et Jean-Philippe MENGUAL <jpmengual@debian.org>

       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)