FIND(1L) Manuel de l'utilisateur Linux FIND(1L)
NOM
find - Rechercher des fichiers dans une hirarchie de rpertoires.
SYNOPSIS
find [chemin...] [expression]
DESCRIPTION
Cette page de manuel documente la version(1,3,5) GNU de find. find parcourt
les arborescences de rpertoires commenant en chacun des chemins
mentionns, en valuant les expressions fournies pour chaque fichier
rencontr. L'valuation de l'expression se fait de gauche droite,
en suivant des rgles de priorit dcrites dans la section
OPRATEURS, jusqu' ce que le rsultat soit connu (par exemple la
partie gauche vraie pour un oprateur OU ou fausse pour un oprateur
ET).
Le premier argument commenant par `-', `(', `)', `,', ou `!' est
considr comme le dbut de l'expression, tous les arguments
prcdents sont des chemins parcourir. Tous les arguments
ultrieurs sont considrs comme le reste de l'expression
rationnelle. de point de dpart. Si aucune expression n'est fournie,
find utilise l'expression `-print' par dfaut.
find se termine avec le code de retour 0 si tous les fichiers ont pu
tre examins correctement, et suprieur 0 si une erreur s'est
produite.
EXPRESSIONS
L'expression est constitue d'options (affectant l'ensemble des
oprations plutt 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 lments tant spars par des oprateurs.
Quand un oprateur est manquant, l'opration par dfaut -and est
applique. Si l'expression ne contient pas d'action autre que -prune,
find applique l'action -print par dfaut 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, plutt que de s'appliquer uniquement leur
emplacement dans l'expression. Nanmoins, pour amliorer la lisi-
bilit, il est prfrable de les placer au dbut de l'expression.
-daystart
Mesurer les temps (avec -amin, -atime, -cmin, -ctime, -mmin, et
-mtime) depuis le dbut de la journe plutt que depuis 24
heures.
-depth Traiter d'abord les sous-rpertoires avant le rpertoire lui-
mme.
-follow
Drfrencer les liens symboliques pour accder aux fichiers
vers lesquels ils pointent. Ceci implique l'option -noleaf.
-help, --help
Afficher un message d'aide(1,5) 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 rpertoires 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 infrieurs n. n est un entier positif ou nul.
`-mindepth 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 rpertoires situs sur d'autres systmes
de fichiers. Il s'agit d'une alternative l'option -xdev,
assurant la compatibilit avec d'anciennes versions de find.
-noleaf
Ne pas faire d'optimisation en supposant que les rpertoires
contiennent deux sous-rpertoires de moins que leurs nombres de
liens physiques. Cette option est ncessaire lorsque l'on par-
court des systmes de fichiers ne suivant pas les conventions
Unix sur les liens de rpertoires, comme les systmes MS-DOS,
les CD-ROM ou les points de montage de volumes AFS. Chaque
rpertoire sur un systme de fichiers Unix dispose au moins de
deux liens physiques, son nom et `.'. De plus chaque sous-
rpertoire a galement un lien `..' vers le rpertoire par-
ent. Quand find examine un rpertoire, il sait qu'il y a deux
sous-rpertoires de moins que de liens vers le rpertoire. Une
fois qu'il a rencontr le nombre prvu de sous-rpertoires,
il est donc sr que le reste des entres est constitu de
fichiers autres que des sous-rpertoires. Ces fichiers sont
des feuilles ([NDT] `leaf') dans l'arborescence des rper-
toires. S'il n'y a que les noms de fichiers examiner, il n'a
plus besoin de vrifier leur nature, et ceci fournit une aug-
mentation notable de la vitesse de traitement.
-version, --version
Afficher un numro de version(1,3,5) sur la sortie standard et se ter-
miner normalement.
-xdev Ne pas parcourir les rpertoires situs sur d'autres systmes
de fichiers.
TESTS
Les arguments numriques peuvent tre indiqus comme suit :
+n suprieur n,
-n infrieur n,
n gal n.
-amin n
dernier accs au fichier il y a n minutes.
-anewer fichier
dernier accs au fichier plus rcent que la dernire modifi-
cation de fichier. Le comportement de l'option -anewer est mod-
ifi par l'option -follow uniquement si celle-ci la prcde
sur la ligne de commande.
-atime n
dernier accs au fichier il y a n*24 heures.
-cmin n
dernire modification du statut du fichier il y a n minutes.
-cnewer fichier
dernire modification du statut du fichier plus rcente que la
dernire modification du fichier fichier. Le comportement de
l'option -cnewer est modifi par l'option -follow uniquement si
celle-ci la prcde sur la ligne de commande.
-ctime n
dernire modification du statut du fichier il y a n*24 heures.
-empty fichier vide. De plus ce fichier doit tre rgulier ou tre
un rpertoire.
-false toujours faux.
-fstype type
fichier se trouvant sur un systme de fichiers du type
indiqu. Les types de systmes de fichiers dpendent de la
version(1,3,5) d'Unix. Une liste non exhaustive des systmes accept(2,8)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 systmes de fichiers.
-gid n Fichier de GID numrique valant n.
-group nom_groupe
fichier appartenant au groupe nom_groupe (ventuellement ID
numrique).
-ilname motif
identique -lname, mais sans diffrencier les majuscules et
les minuscules.
-iname motif
identique -name, mais sans diffrencier les majuscules et
les minuscules. Par exemple les motifs `fo*' et `F??' correspon-
dent aux noms de fichiers `Foo', `FOO', `foo', `fOo', etc...
-inum n
fichier dont le numro d'i-noeud est n.
-ipath motif
identique -path, mais sans diffrencier les majuscules et
les minuscules.
-iregex motif
identique -regex, mais sans diffrencier les majuscules et
les minuscules.
-links n
fichier ayant n liens.
-lname motif
fichier reprsentant un lien symbolique, dont le contenu corre-
spond au motif indiqu. Lors du dveloppement des mta-car-
actres, `/' et `.' ne sont pas traits diffremment des
autres caractres (voir l'exemple dans la description de
l'option -path).
-mmin n
Fichier dont les donnes ont t modifies il y a n minutes.
-mtime n
Fichier dont les donnes ont t modifies il y a n*24
heures.
-name motif
Fichier dont le nom de base (sans les rpertoires du chemin
d'accs), correspond au motif du shell. Les mta-caractres
(`*', `?', et `[]') ne sont jamais mis en correspondance avec un
point `.' au dbut du nom. Pour ignorer un rpertoire, ainsi
que tous ses sous-rpertoires, utiliser l'option -prune ; vous
trouverez un exemple dans la description de l'option -path.
-newer fichier
Fichier modifi plus rcemment que le fichier indiqu.
L'option -newer n'est affecte par l'option -follow que si
celle-ci la prcde sur la ligne de commande.
-nouser
Fichier dont l'U-ID numrique ne correspond aucun utilisa-
teur.
-nogroup
Fichier dont le G-ID numrique ne correspond aucun groupe
d'utilisateurs.
-path motif
Fichier dont le nom complet correspond au motif fourni. Lors du
dveloppement des mta-caractres, `/' et `.' ne sont pas
traits diffremment des autres caractres, ainsi par exemple
:
find . -path './sr*sc'
affichera l'lment de rpertoire intitul './src/misc'
(s'il en existe un). Pour ignorer une arborescence complte de
rpertoires, utilisez l'option -prune plutt que de vrifier
chaque fichier de l'arbre. Par exemple, pour ignorer le rper-
toire `src/emacs' et tous ses sous-rpertoires, 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'accs sont fixes exactement
au mode indiqu (en notation symbolique ou octale). La notation
symbolique utilise le mode 0 comme point de dpart.
-perm -mode
Fichier ayant au moins toutes les autorisations indiques dans
le mode.
-perm +mode
Fichier ayant certaines des autorisations indiques 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 units d'espace. Les units sont des
blocs de 512 octets par dfaut (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 indirects, mais elle comptabilise les blocs des fichiers
parpills pas encore allous.
-true Toujours vrai.
-type c
Fichier du type c :
b fichier spcial en mode bloc (avec tampon)
c fichier spcial en mode caractre (sans tampon)
d rpertoire
p tube nomm (FIFO)
f fichier rgulier
l liens symbolique
s socket(2,7,n)
D door (Solaris)
-uid n Fichier dont l'U-ID numrique vaut n.
-used n
fichier dont le dernier accs date de n jours aprs la
dernire modification de son statut.
-user utilisateur
fichier appartenant l'utilisateur indiqu (U-ID numrique
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 rclame, le test est vrai si c vaut `l'.
Autrement dit, pour les liens symboliques, -xtype vrifie le
type des fichiers que l'option -type ne vrifie pas.
ACTIONS
-exec commande ;
Excute la commande ; vrai si le code de retour 0 est renvoy.
Tous les arguments suivants de find sont considrs comme des
arguments pour la ligne de commande, jusqu' ce qu'on rencontre
un `;'. La chane `{}' est remplace par le nom du fichier en
cours de traitement, et ceci dans toutes ses occurrences, pas
seulement aux endroits o elle est isole, comme c'est le cas
avec d'autres versions de find. Ces deux chanes peuvent avoir
besoin d'tre protges du dveloppement de la ligne de com-
mande par le shell, en utilisant le caractre d'chappement
(`\') ou une protection par des apostrophes. La commande est
excute depuis le rpertoire de dpart.
-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 dmarrage de find, il est cr. S'il existe,
il est cras. Les noms de fichiers ``/dev/stdout'' et
``/dev/stderr'' sont traits de manire spcifique, ils cor-
respondent 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'entre standard). Si la rponse ne commence pas par `y' ou
`Y', la commande n'est pas excute, 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 caractre nul. Ceci permet aux fichiers dont le nom
contient un saut de ligne, d'tre correctement interprts
par les programmes utilisant les donnes en sortie de find.
-printf format
vrai ; affiche le format indiqu sur la sortie standard, en
interprtant les squences d'chappement `\' et les direc-
tives`%'. La largeur et la prcision des champs peuvent tre
spcifis comme dans la fonction printf(1,3,1 builtins)(3) du langage C. Con-
trairement -print, -printf n'ajoute pas de saut de ligne
la fin de la chane. Les squences d'chappement et les
directives % sont les suivantes :
\a Sonnerie.
\b Effacement Arrire (Backspace)
\c Arrter immdiatement 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 caractre `Backslash' littral (`\').
Un `\' suivi de n'importe quel autre caractre est trait
comme un caractre ordinaire ; ils sont donc affichs tous les
deux.
%% Un caractre pourcentage littral (%)
%a Date du dernier accs au fichier, dans le format ren-
voy par la fonction C ctime(3).
%Ak Date du dernier accs au fichier, dans le format
spcifi par k, qui doit tre soit un `@', soit une
directive pour la fonction C strftime(3). Les valeurs
possibles pour k sont indiques ci-dessous, certaines
d'entre-elles ne sont pas disponibles sur tous les
systmes, cause des diffrences entre les fonctions
strftime(3) existantes.
@ secondes coules 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 dsignation locale(3,5,7)
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 reprsentation locale(3,5,7) de l'heure (H:M:S)
Z fuseau horaire (par exemple MET), ou rien si le
fuseau horaire est indtermin.
Champs de date :
a abrviation locale(3,5,7) du jour de la semaine (Dim ..
Sam)
A nom local entier du jour de la semaine, de
longueur variable (Dimanche .. Samedi)
b abrviation locale(3,5,7) du mois (Jan..Dec)
B nom local entier du mois, de longueur variable
(Janvier .. Dcembre)
c date et heure locales (Sam Nov 04 12:02:33 EST
1989)
d quantime du mois (01..31)
D date (mm/jj/aa)
h comme b
j jour de l'anne (001..366)
m mois (01..12)
U numro de la semaine dans l'anne, les semaines
commenant le Dimanche (00..53)
w jour de la semaine (0..6), 0 correspond
Dimanche
W numro de la semaine dans l'anne, les semaines
commenant le Lundi (00..53)
x reprsentation locale(3,5,7) de la date (mm/jj/aa)
y les deux dernier chiffres de l'anne
(00..99)
Y anne (1970...)
%b Taille du fichier en nombre de blocs de 512 octets
(arrondi par excs).
%c Date de dernire modification du statut du fichier, dans
le format renvoy par la fonction C ctime(3).
%Ck Date de dernire modification du statut du fichier, dans
le format spcifi par k, comme pour la directive %A.
%d Profondeur du fichier dans l'arborescence des rper-
toires, 0 signifiant que le fichier est un argument de la
ligne de commande.
%f Nom du fichier, sans nom de rpertoire.
%F Type de systme de fichiers sur lequel se trouve le
fichier. Cette valeur peut tre utilise pour l'option
-fstype.
%g Nom du groupe propritaire du fichier, ou G-ID
numrique si le groupe n'a pas de nom.
%G G-ID numrique du fichier.
%h Rpertoires en tte du nom de fichier (tout sauf le
dernier nom).
%H Argument de la ligne de commande partir duquel le
fichier a t trouv.
%i Numro d'i-noeud du fichier (en dcimal).
%k Taille du fichier, en nombre de blocs de 1 Kilo-Octet,
arrondi par excs.
%l Destination du lien symbolique (vide si le fichier n'est
pas un lien symbolique).
%m Bits d'autorisation d'accs 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 dernire modification du fichier, dans le format
renvoy par la fonction C ctime(3).
%Tk Date de dernire modification du fichier, dans le format
spcifi par k, comme pour la directive %A.
%u Nom du propritaire du fichier, ou U-ID numrique si
l'utilisateur n'a pas de nom.
%U U-ID numrique du propritaire du fichier.
Un caractre `%' suivi de tout autre caractre est limin
(mais le second caractre est affich).
-prune vrai si l'option -depth n'est pas fournie ; ne pas descendre
dans l'arborescence du rpertoire 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 compte en blocs
de 1 Ko, moins que la variable d'environnement POSIXLY_COR-
RECT soit positionne, auquel cas la taille est calcule en
blocs de 512 octets.
OPRATEURS
Dans l'ordre de priorit dcroissante :
( expr(1,3,n) )
Force la priorit.
! expr(1,3,n) Vrai si expr(1,3,n) est fausse.
-not expr(1,3,n)
Comme ! expr(1,3,n).
expr1 expr2
ET (implicite) ; expr2 n'est pas value si expr1 est fausse.
expr1 -a expr2
Comme expr1 expr2.
expr1 -and expr2
Comme expr1 expr2.
expr1 -o expr2
OU ; expr2 n'est pas value si expr1 est vraie.
expr1 -or expr2
Comme expr1 -o expr2.
expr1 , expr2
Liste ; expr1 et expr2 sont toujours values toutes les deux.
La valeur de expr1 est ignore ; 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(1,3,5) imprime)
TRADUCTION
Christophe Blaess, 1997-2003.
findutils 15 janvier 1997 FIND(1L)