commande find

Si vous voulez revenir sur la PAGE PRéCéNTE.

Commande find


  • find


  • FIND(1L)                 Manuel de l'utilisateur Linux                FIND(1L)
    
    NOM
           find - Rechercher des fichiers dans une hiérarchie de répertoires.
    
    SYNOPSIS
           find [chemin...] [expression]
    
    DESCRIPTION
           Cette  page  de manuel documente la version GNU de find.  find parcourt
           les arborescences de répertoires commençant en chacun des chemins  men‐
           tionnés,  en évaluant les expressions fournies pour chaque fichier ren‐
           contré.  L'évaluation de l'expression se fait de gauche  à  droite,  en
           suivant  des  règles  de  priorité décrites dans la section OPÉRATEURS,
           jusqu'à ce que le résultat soit connu (par  exemple  la  partie  gauche
           vraie pour un opérateur OU ou fausse pour un opérateur ET).
    
           Le premier argument commençant par `-', `(', `)', `,', ou `!'  est con‐
           sidéré comme le début de l'expression, tous  les  arguments  précédents
           sont  des  chemins à parcourir. Tous les arguments ultérieurs sont con‐
           sidérés comme le  reste  de  l'expression  rationnelle.   de  point  de
           départ.  Si  aucune expression n'est fournie, find utilise l'expression
           `-print' par défaut.
    
           find se termine avec le code de retour 0 si tous les  fichiers  ont  pu
           être  examinés  correctement, et supérieur à 0 si une erreur s'est pro‐
           duite.
    
    EXPRESSIONS
           L'expression  est  constituée  d'options  (affectant   l'ensemble   des
           opérations  plutôt  que le traitement d'un fichier particulier, et ren‐
           voyant toujours vrai), de tests (renvoyant une valeur vraie ou fausse),
           et  d'actions  (ayant des effets de bords et renvoyant une valeur vraie
           ou fausse), tous ces éléments étant séparés par des opérateurs.   Quand
           un  opérateur  est manquant, l'opération par défaut -and est appliquée.
           Si l'expression  ne  contient  pas  d'action  autre  que  -prune,  find
           applique l'action -print par défaut sur tous les fichiers pour lesquels
           l'expression est vraie.
    
       OPTIONS
           Toutes les options renvoient toujours la valeur vraie. Elles  ont  tou‐
           jours  un  effet  global,  plutôt  que de s'appliquer uniquement à leur
           emplacement dans l'expression.   Néanmoins,  pour  améliorer  la  lisi‐
           bilité, il est préférable de les placer au début de l'expression.
    
           -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.
    
           -depth Traiter  d'abord  les  sous-répertoires avant le répertoire lui-
                  même.
    
           -follow
                  Déréférencer les liens symboliques  pour  accéder  aux  fichiers
                  vers lesquels ils pointent. Ceci implique l'option -noleaf.
    
           -help, --help
                  Afficher  un  message d'aide sur la  sortie  standard et se ter‐
                  miner normalement.
    
           -maxdepth n
                  Descendre au plus n niveaux (n étant un entier positif ou  nul),
                  dans  les  répertoires parcourus. `-maxdepth 0' signifie que les
                  tests et les actions ne  s'appliquent  qu'aux  arguments  de  la
                  ligne de commande.
    
           -mindepth n
                  Ne  pas appliquer les tests ou les actions à des niveaux de pro‐
                  fondeur inférieurs à n. n est un entier positif ou nul.   `-min‐
                  depth  1'  signifie  que les tests et les actions s'appliquent à
                  tous les fichiers sauf aux arguments de la ligne de commande.
    
           -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, assur‐
                  ant la compatibilité avec d'anciennes versions de find.
    
           -noleaf
                  Ne pas faire d'optimisation en  supposant  que  les  répertoires
                  contiennent  deux sous-répertoires de moins que leurs nombres de
                  liens physiques.  Cette option est nécessaire lorsque l'on  par‐
                  court  des  systèmes  de fichiers ne suivant pas les conventions
                  Unix sur 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 au  moins  de
                  deux liens physiques, son nom et `.'. De plus chaque sous-réper‐
                  toire a également un lien `..' vers le répertoire parent.  Quand
                  find  examine  un répertoire, il sait qu'il y a deux sous-réper‐
                  toires de moins que de liens vers le répertoire. Une fois  qu'il
                  a rencontré le nombre prévu de sous-répertoires, il est donc sûr
                  que le reste des entrées est constitué de  fichiers  autres  que
                  des  sous-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, et ceci fournit une augmentation notable de  la  vitesse
                  de traitement.
    
           -version, --version
                  Afficher  un numéro de version sur la sortie standard et se ter‐
                  miner normalement.
    
           -xdev  Ne pas parcourir les répertoires situés sur d'autres systèmes de
                  fichiers.
    
       TESTS
           Les arguments numériques peuvent être indiqués comme suit :
    
           +n     supérieur à n,
    
           -n     inférieur à n,
    
           n      égal à n.
    
           -amin n
                  dernier accès au fichier il y a n minutes.
    
           -anewer fichier
                  dernier  accès  au fichier plus récent que la dernière modifica‐
                  tion de fichier.  Le comportement de l'option -anewer  est  mod‐
                  ifié  par l'option -follow uniquement si celle-ci la précède sur
                  la ligne de commande.
    
           -atime n
                  dernier accès au fichier il y a n*24 heures.
    
           -cmin n
                  dernière modification du statut du fichier il y a n minutes.
    
           -cnewer fichier
                  dernière modification du statut du fichier plus récente  que  la
                  dernière  modification  du  fichier fichier.  Le comportement de
                  l'option -cnewer est modifié par l'option -follow uniquement  si
                  celle-ci la précède sur la ligne de commande.
    
           -ctime n
                  dernière modification du statut du fichier il y a n*24 heures.
    
           -empty fichier  vide.  De plus ce fichier doit être régulier ou être un
                  répertoire.
    
           -false toujours faux.
    
           -fstype type
                  fichier se trouvant sur un système de fichiers du type  indiqué.
                  Les  types  de  systèmes  de  fichiers  dépendent  de la version
                  d'Unix. Une liste non exhaustive des systèmes acceptés sur  cer‐
                  taines  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 de GID numérique valant n.
    
           -group nom_groupe
                  fichier  appartenant  au  groupe  nom_groupe  (éventuellement ID
                  numérique).
    
           -ilname motif
                  identique à -lname, mais sans différencier les majuscules et les
                  minuscules.
    
           -iname motif
                  identique  à -name, mais sans différencier les majuscules et les
                  minuscules. Par exemple les motifs `fo*' et `F??'  correspondent
                  aux noms de fichiers `Foo', `FOO', `foo', `fOo', etc...
    
           -inum n
                  fichier dont le numéro d'i-noeud est n.
    
           -ipath motif
                  identique  à -path, mais sans différencier les majuscules et les
                  minuscules.
    
           -iregex motif
                  identique à -regex, mais sans différencier les majuscules et les
                  minuscules.
    
           -links n
                  fichier ayant n liens.
    
           -lname motif
                  fichier  représentant un lien symbolique, dont le contenu corre‐
                  spond au motif indiqué.  Lors  du  développement  des  méta-car‐
                  actères, `/' et `.'  ne sont pas traités différemment des autres
                  caractères (voir  l'exemple  dans  la  description  de  l'option
                  -path).
    
           -mmin n
                  Fichier dont les données ont été modifiées il y a n minutes.
    
           -mtime n
                  Fichier dont les données ont été modifiées il y a n*24 heures.
    
           -name motif
                  Fichier  dont  le  nom  de  base (sans les répertoires du chemin
                  d'accès), correspond au motif  du  shell.   Les  méta-caractères
                  (`*', `?', et `[]') ne sont jamais mis en correspondance avec un
                  point `.'  au début du nom.  Pour ignorer un  répertoire,  ainsi
                  que  tous  ses sous-répertoires, utiliser l'option -prune ; vous
                  trouverez un exemple dans la description de l'option -path.
    
           -newer fichier
                  Fichier modifié plus récemment que le fichier indiqué.  L'option
                  -newer  n'est  affectée  par l'option -follow que si celle-ci la
                  précède sur la ligne de commande.
    
           -nouser
                  Fichier dont l'U-ID numérique ne correspond à aucun utilisateur.
    
           -nogroup
                  Fichier dont le G-ID numérique  ne  correspond  à  aucun  groupe
                  d'utilisateurs.
    
           -path motif
                  Fichier  dont le nom complet correspond au motif fourni. Lors du
                  développement des méta-caractères,  `/'  et  `.'   ne  sont  pas
                  traités différemment des autres caractères, ainsi par exemple :
                            find . -path './sr*sc'
                  affichera l'élément de répertoire intitulé './src/misc' (s'il en
                  existe un).  Pour ignorer une arborescence  complète  de  réper‐
                  toires,  utilisez  l'option -prune plutôt que de vérifier chaque
                  fichier de l'arbre. Par  exemple,  pour  ignorer  le  répertoire
                  `src/emacs'  et  tous ses sous-répertoires, tout en affichant le
                  nom de tous les autres fichiers, faites quelque chose comme :
                            find . -path './src/emacs' -prune -o -print
    
           -perm mode
                  Fichier dont les autorisations d'accès sont fixées exactement au
                  mode  indiqué  (en  notation  symbolique ou octale). La notation
                  symbolique utilise le mode 0 comme point de départ.
    
           -perm -mode
                  Fichier ayant au moins toutes les autorisations  indiquées  dans
                  le mode.
    
           -perm +mode
                  Fichier  ayant  certaines  des  autorisations  indiquées dans le
                  mode.
    
           -regex motif
                  Nom de fichier correspondant à l'expression  rationnelle  motif.
                  Il  s'agit  d'une  correspondance sur le nom de fichier complet,
                  pas d'une recherche. Par exemple, pour mettre en  correspondance
                  un  fichier  nommé  `./fubar3', vous pouvez utiliser les expres‐
                  sions rationnelles `.*bar.' ou `.*b.*3', mais pas `b.*r3'.
    
           -size n[bckw]
                  Fichier utilisant n unités d'espace.  Les unités sont des  blocs
                  de  512  octets  par défaut (ou si un suffixe `b' suit le nombre
                  n), des octets si un suffixe `c' suit n, des kilo-octets  si  un
                  suffixe  `k' est utilisé, ou des mots de 2 octets si un `w' suit
                  le nombre n.  La taille ne prend pas en compte les  blocs  indi‐
                  rects,  mais elle comptabilise les blocs des fichiers éparpillés
                  pas encore alloués.
    
           -true  Toujours vrai.
    
           -type c
                  Fichier du type c :
    
                  b      fichier spécial en mode bloc (avec tampon)
    
                  c      fichier spécial en mode caractère (sans tampon)
    
                  d      répertoire
    
                  p      tube nommé (FIFO)
    
                  f      fichier régulier
    
                  l      liens symbolique
    
                  s      socket
    
                  D      door (Solaris)
    
           -uid n Fichier dont l'U-ID numérique vaut n.
    
           -used n
                  fichier dont le dernier accès date de n jours après la  dernière
                  modification de son statut.
    
           -user utilisateur
                  fichier  appartenant  à  l'utilisateur  indiqué  (U-ID numérique
                  éventuellement)
    
           -xtype c
                  comme -type sauf si le fichier est un lien symbolique.  Dans  ce
                  cas,  si  l'option -follow n'a pas été fournie, le test est vrai
                  si le fichier destination du lien est de type  c ;  si  l'option
                  -follow  a  été  réclamé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.
    
       ACTIONS
           -exec commande ;
                  Exécute  la  commande ; vrai si le code de retour 0 est renvoyé.
                  Tous les arguments suivants de find sont  considérés  comme  des
                  arguments  pour la ligne de commande, jusqu'à ce qu'on rencontre
                  un `;'. La chaîne `{}' est remplacée par le nom  du  fichier  en
                  cours  de  traitement,  et ceci dans toutes ses occurrences, 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  le  shell, en utilisant le caractère d'échappement (`\') ou
                  une protection par des apostrophes.  La  commande  est  exécutée
                  depuis le répertoire de départ.
    
           -fls fichier
                  vrai ;  comme  -ls  mais  écrit  dans  le  fichier comme le fait
                  -fprint.
    
           -fprint fichier
                  vrai ; écrit  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   fichiers   ``/dev/stdout''   et
                  ``/dev/stderr''  sont  traités de manière spécifique, ils corre‐
                  spondent respectivement à la sortie standard, et à la sortie des
                  erreurs.
    
           -fprint0 fichier
                  vrai ;  comme  -print0  mais écrit dans le fichier comme le fait
                  -fprint.
    
           -fprintf fichier format
                  vrai ; comme -printf mais écrit dans le fichier  comme  le  fait
                  -fprint.
    
           -ok commande ;
                  comme  -exec  mais interroge d'abord l'utilisateur (en utilisant
                  l'entrée standard).  Si la réponse ne commence pas  par  `y'  ou
                  `Y', la commande n'est pas exécutée, et le test devient faux.
    
           -print vrai ; affiche le nom complet du fichier sur la sortie standard,
                  suivi d'un saut de ligne.
    
           -print0
                  vrai ; affiche le nom complet du fichier sur la sortie standard,
                  suivi  d'un  caractère nul. Ceci permet aux fichiers dont le nom
                  contient un saut de ligne, d'être correctement  interprétés  par
                  les programmes utilisant les données en sortie de find.
    
           -printf format
                  vrai ;  affiche  le  format  indiqué  sur la sortie standard, en
                  interprétant les  séquences  d'échappement  `\'  et  les  direc‐
                  tives`%'.   La  largeur  et la précision des champs peuvent être
                  spécifiés comme dans la fonction printf(3) du langage  C.   Con‐
                  trairement  à -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
    
                  \\     Un caractère `Backslash' littéral (`\').
    
                  Un `\' suivi de n'importe quel autre caractère est traité  comme
                  un caractère ordinaire ; ils sont donc affichés tous les deux.
    
                  %%     Un caractère pourcentage littéral (%)
    
                  %a     Date  du dernier accès au fichier, dans le format renvoyé
                         par la fonction C ctime(3).
    
                  %Ak    Date du dernier accès au fichier, dans le format spécifié
                         par k, qui doit être soit un `@', soit une directive pour
                         la fonction C strftime(3).  Les valeurs possibles pour  k
                         sont  indiquées  ci-dessous,  certaines  d'entre-elles ne
                         sont pas disponibles sur tous les systèmes, à  cause  des
                         différences entre les fonctions strftime(3) existantes.
    
                         @      secondes écoulées depuis le 1er Janvier 1970 à 00h
                                00 GMT.
    
                         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, sur un cadran de 12 heures (hh:mm:ss [AP]M)
    
                         S      secondes (00..61)
    
                         T      heure, sur un cadran de 24 heures (hh:mm:ss)
    
                         X      représentation locale de l'heure (H:M:S)
    
                         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 (Dim ..
                                Sam)
    
                         A      nom  local  entier  du  jour  de  la  semaine,  de
                                longueur variable (Dimanche .. Samedi)
    
                         b      abréviation locale du mois (Jan..Dec)
    
                         B      nom  local  entier  du  mois, de longueur variable
                                (Janvier .. Décembre)
    
                         c      date et heure locales (Sam  Nov  04  12:02:33  EST
                                1989)
    
                         d      quantième du mois (01..31)
    
                         D      date (mm/jj/aa)
    
                         h      comme b
    
                         j      jour de 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), 0 correspond à Dimanche
    
                         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      les deux dernier chiffres de l'année
                                 (00..99)
    
                         Y      année (1970...)
    
                  %b     Taille  du  fichier  en  nombre  de  blocs  de 512 octets
                         (arrondi par excès).
    
                  %c     Date de dernière modification du statut du fichier,  dans
                         le format renvoyé par la fonction C ctime(3).
    
                  %Ck    Date  de dernière modification du statut du fichier, dans
                         le format spécifié par k, comme pour la directive %A.
    
                  %d     Profondeur du  fichier  dans  l'arborescence  des  réper‐
                         toires, 0 signifiant que le fichier est un argument de la
                         ligne de commande.
    
                  %f     Nom du fichier, sans nom de répertoire.
    
                  %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 G-ID  numérique
                         si le groupe n'a pas de nom.
    
                  %G     G-ID numérique du fichier.
    
                  %h     Répertoires  en  tête  du  nom  de  fichier (tout sauf le
                         dernier nom).
    
                  %H     Argument de la ligne  de  commande  à  partir  duquel  le
                         fichier a été trouvé.
    
                  %i     Numéro d'i-noeud du fichier (en décimal).
    
                  %k     Taille  du  fichier,  en nombre de blocs de 1 Kilo-Octet,
                         arrondi par excès.
    
                  %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 octal).
    
                  %n     Nombre de liens physiques sur le fichier.
    
                  %p     Nom du fichier.
    
                  %P     Nom  du  fichier, ainsi que le nom de l'argument de ligne
                         de commande à partir duquel le fichier a été trouvé.
    
                  %s     Taille du fichier en octets.
    
                  %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  U-ID  numérique  si
                         l'utilisateur n'a pas de nom.
    
                  %U     U-ID numérique du propriétaire du fichier.
    
                  Un caractère `%' suivi de tout autre caractère est éliminé (mais
                  le second caractère est affiché).
    
           -prune vrai si l'option -depth n'est pas  fournie ;  ne  pas  descendre
                  dans l'arborescence du répertoire en cours.
                  faux si l'option -depth est fournie, et sans effet.
    
           -ls    vrai,  affiche  le  nom  du  fichier en cours dans le format `ls
                  -dils' sur la sortie standard.  La taille est comptée  en  blocs
                  de 1 Ko, à moins que la variable d'environnement POSIXLY_CORRECT
                  soit positionnée, auquel cas la taille est calculée en blocs  de
                  512 octets.
    
       OPÉRATEURS
           Dans l'ordre de priorité décroissante :
    
           ( expr )
                  Force la priorité.
    
           ! expr Vrai si expr est fausse.
    
           -not expr
                  Comme ! expr.
    
           expr1 expr2
                  ET (implicite) ; expr2 n'est pas évaluée si expr1 est fausse.
    
           expr1 -a expr2
                  Comme expr1 expr2.
    
           expr1 -and expr2
                  Comme expr1 expr2.
    
           expr1 -o expr2
                  OU ; expr2 n'est pas évaluée si expr1 est vraie.
    
           expr1 -or expr2
                  Comme expr1 -o expr2.
    
           expr1 , expr2
                  Liste ;  expr1  et expr2 sont toujours évaluées toutes les deux.
                  La valeur de expr1 est ignorée ; la valeur de la liste est celle
                  de expr2.
    
    VOIR AUSSI
           locate(1L),  locatedb(5L),  updatedb(1L),  xargs(1L)  Finding Files (en
           ligne dans Info, ou en version imprimée)
    
    TRADUCTION
           Christophe Blaess, 1997-2003.
    
    findutils                       15 janvier 1997                       FIND(1L)
    
    



    Mes sources sont extraites de "www.linux-france.org" que je remercie au passage, pour sa traduction

    Pour me contacter pour me faire des remarques, des critiques, ou tout simplement pour m'indiquer un lien cassé ou un nouveau lien vers une ressource intéressante (peut-être la votre) à rajouter dans cette page: dafpolo@gmail.com
    vous pouvez également laisser un message sur mon Livre d'or.