Man page - find(1)

Packages contains this manual

Available languages:

en fr pt_BR pl nl ja uk ru zh_TW zh_CN de

Manual

FIND

NOM
SYNOPSIS
DESCRIPTION
OPTIONS
EXPRESSIONS
OPTIONS DE POSITION
OPTIONS GLOBALES
TESTS
ACTIONS
OPÉRATEURS
NOMS DE FICHIERS PEU COURANTS
CONFORMITÉ AUX STANDARDS
VARIABLES D’ENVIRONNEMENT
EXEMPLES
Approche simple de « find|xargs »
Approche plus sûre de « find -print0 | xargs -0 »
Traitement de points de départ arbitraires
Exécuter une commande pour chaque fichier
Explorer une fois le systÚme de fichiers - pour deux actions différentes
Rechercher des fichiers par leur Ăąge
Rechercher les fichiers par leurs permissions
DĂ©couper – omettre des fichiers et des sous-rĂ©pertoires
Autres exemples utiles
CODE DE RETOUR
HISTORIQUE
COMPATIBILITÉ
FAUX BOGUES
Surprises avec la prĂ©cĂ©dence d’un opĂ©rateur
Message d’erreur “paths must precede expression”
BOGUES
SIGNALER DES BOGUES
COPYRIGHT
VOIR AUSSI
TRADUCTION

NOM

find – Rechercher des fichiers dans une hiĂ©rarchie de rĂ©pertoires

SYNOPSIS

find [ -H ] [ -L ] [ -P ] [ -D options_débogage ] [ -O niveau ] [ 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Ă© comme une source d’informations plus utile.

OPTIONS

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

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

-P

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

-L

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

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

-H

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

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

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

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

L’option -follow a le mĂȘme effet que -L , sauf qu’elle agit Ă  l’endroit oĂč elle apparaĂźt (c’est-Ă -dire que si -L n’est pas utilisĂ©e et que -follow l’est, tout lien symbolique qui apparaĂźt sur la ligne de commande aprĂšs -follow sera dĂ©rĂ©fĂ©rencĂ© et ceux apparaissant avant ne le seront pas).
-D
options_débogage

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

exec

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

opt

Afficher des informations de diagnostic liĂ©es Ă  l’optimisation de l’arbre de l’expression (voir l’option -O ).

rates

Afficher un rĂ©sumĂ© indiquant le nombre de succĂšs ou d’échecs de chacun des prĂ©dicats.

search

Naviguer dans l’arborescence du rĂ©pertoire de maniĂšre bavarde.

stat

Afficher des messages dĂšs que des fichiers sont examinĂ©s Ă  l’aide des appels systĂšme stat et lstat . Le programme find tente de limiter ce type d’appels.

tree

Afficher l’arbre de l’expression dans sa forme d’origine et sa forme optimisĂ©e.

all

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

help

Décrire les options de débogage.

-O niveau

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.

Le rĂ©arrangement des opĂ©rations exĂ©cutĂ©es par l’optimiseur basĂ© sur le coĂ»t peut rĂ©sulter en un changement de comportement visible par l’utilisateur. Par exemple, les prĂ©dicats -readable et -empty sont sensibles au rĂ©arrangement. Si exĂ©cutĂ©s dans l’ordre -empty -readable , un message d’erreur sera affichĂ© pour les rĂ©pertoires illisibles. Si exĂ©cutĂ©s dans l’ordre -readable -empty , aucun message d’erreur ne sera produit. C’est pourquoi une telle opĂ©ration de rĂ©arrangement n’est pas exĂ©cutĂ©e au niveau d’optimisation par dĂ©faut.

EXPRESSIONS

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

Tests

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

Actions

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

Options globales

Les options globales modifient la rĂ©alisation de tests et d’actions spĂ©cifiĂ©es n’importe oĂč sur la ligne de commande. Les options globales renvoient toujours vrai. Par exemple, l’option -depth amĂšne find Ă  traverser le systĂšme de fichiers par ordre de profondeur.

Options de position

Les options de position ne modifient que les tests ou les actions qui les suivent. Les options de position renvoient toujours vrai. Par exemple, l’option -regextype est une option de position qui spĂ©cifie le dialecte de l’expression rationnelle 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

Changer 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 rationnelle 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 rationnelle. Si vous n’utilisez pas cette option, find se comporte comme si le type d’expression rationnelle emacs avait Ă©tĂ© spĂ©cifiĂ©.

-warn , -nowarn

Activer ou dĂ©sactiver les messages d’avertissement. Ces messages d’avertissement concernent l’usage de la ligne de commande et non les Ă©vĂ©nements que find peut rencontrer lorsqu’il explore les rĂ©pertoires. Le comportement par dĂ©faut est d’activer -warn si l’entrĂ©e standard est un tty et -nowarn dans les autres cas. Si un message d’avertissement est produit concernant l’utilisation de la ligne de commande, l’état de sortie de find n’est pas affectĂ©. Si la variable d’environnement POSIXLY_CORRECT est dĂ©finie et si -warn est utilisĂ©, rien ne dit quels messages d’avertissement seront actifs s’il y en a.

OPTIONS GLOBALES

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

Les options globales interviennent aprĂšs la liste des points de dĂ©part, elles sont d’un autre type que des options comme -L .

-d

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

-depth

Traiter d’abord les sous-rĂ©pertoires avant le rĂ©pertoire lui-mĂȘme. L’action -delete implique aussi -depth .

-files0-from fichier

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

Utiliser cette option et passer les points de dĂ©part en ligne de commande s’excluent mutuellement et cela n’est donc pas permis en mĂȘme temps.

L’argument fichier est obligatoire. Il est possible d’utiliser -files0-from - pour lire la liste des points de dĂ©part Ă  partir du flux de l’ entrĂ©e standard , et par exemple d’un tube. Dans ce cas, les actions -ok et -okdir ne sont pas permises parce qu’elles interfĂ©reraient de façon Ă©vidente avec la lecture Ă  partir de l’ entrĂ©e standard afin d’obtenir une confirmation de l’utilisateur.

Les points de dĂ©part dans fichier doivent ĂȘtre sĂ©parĂ©s par des caractĂšres ASCII NULL. Deux caractĂšres NULL successifs, par exemple un point de dĂ©part avec un nom de fichier de longueur nulle ne sont pas permis et mĂšneront Ă  une erreur de diagnostic suivie d’un code d’erreur diffĂ©rent de zĂ©ro.

Dans le cas oĂč le fichier donnĂ© en argument est vide, find ne traite aucun point de dĂ©part et donc quittera immĂ©diatement aprĂšs l’analyse des arguments du programme. C’est diffĂ©rent de l’invocation standard oĂč find considĂšre le rĂ©pertoire actuel comme point de dĂ©part si aucun argument de chemin n’est passĂ©.

Sinon, le traitement des points de dĂ©part est comme d’habitude, par exemple find parcourra de façon rĂ©cursive les sous-rĂ©pertoires sauf indication contraire. Pour ne traiter que les points de dĂ©part, il est possible de passer l’argument -maxdepth 0 en plus.

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

-help , --help

Afficher un message d’aide concernant l’utilisation de find sur la sortie standard et quitter.

-ignore_readdir_race

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

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

-maxdepth n

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

-mindepth n

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

-mount

Ne pas parcourir les rĂ©pertoires situĂ©s sur d’autres systĂšmes de fichiers. Il s’agit d’une alternative Ă  l’option -xdev , assurant la compatibilitĂ© avec d’anciennes versions de find .

-noignore_readdir_race

DĂ©sactiver l’effet de -ignore_readdir_race .

-noleaf

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

-version , --version

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

-xdev

Ne pas parcourir les rĂ©pertoires situĂ©s sur d’autres systĂšmes de fichiers.

TESTS

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

Un paramĂštre numĂ©rique n peut ĂȘtre passĂ© aux tests (comme -amin , -mtime , -gid , -inum , -links , -size , -uid et -used ) ainsi

+n

supérieur à n ,

-n

inférieur à n ,

n

strictement égal à n .

Tests pris en charge :
-amin
n

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

-anewer référence

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

-atime n

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

-cmin n

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

-cnewer référence

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

-ctime n

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

-empty

Fichier vide. De plus, ce fichier doit ĂȘtre un fichier normal ou un rĂ©pertoire.

-executable

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

-false

Toujours faux.

-fstype type

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

-gid n

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

-group nom_groupe

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

-ilname motif

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

-iname motif

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

-inum n

Fichier dont le numĂ©ro d’inƓud est infĂ©rieur Ă , supĂ©rieur Ă  ou Ă©gal Ă  n . Il est en gĂ©nĂ©ral plus facile d’utiliser le test -samefile .

-ipath motif

Semblable à -path , mais sans différencier les capitales et les minuscules.

-iregex motif

Semblable à -regex , mais sans différencier les capitales 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 les rĂ©pertoires parents) correspond au motif de l’interprĂ©teur de commande. Les rĂ©pertoires parents des noms de fichier Ă©tant supprimĂ©s, le motif ne doit pas inclure de barre oblique parce que « -name a/b » ne trouvera rien (vous devrez probablement utiliser plutĂŽt -path ). Une exception Ă  l’utilisation de la barre oblique dans motif (« -name / ») est la recherche du rĂ©pertoire racine, car cela est une chaine valable pour correspondre au rĂ©pertoire racine « / » (car le nom de base de « / » est « / »). Un avertissement apparaĂźt si vous essayez de passer un motif contenant une barre oblique, mais ne consistant pas en une seule barre oblique, sauf si la variable d’environnement POSIXLY_CORRECT est dĂ©finie ou si l’option -nowarn est utilisĂ©e.

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 avec 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 :

Image grohtml-3901849-1.png

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

-nogroup

Fichier dont l’identifiant de groupe numĂ©rique ne correspond Ă  aucun groupe d’utilisateurs.

-nouser

Fichier dont l’UID numĂ©rique ne correspond Ă  aucun utilisateur.

-path motif

Fichier dont le nom correspond au motif motif . Les mĂ©tacaractĂšres « / » ou « . » ne sont pas interprĂ©tĂ©s, d’oĂč, par exemple,

find . -path "./sr*sc"

affichera une entrĂ©e pour un rĂ©pertoire nommĂ© ./src/misc (s’il en existe un). Pour ignorer toute une arborescence, utilisez -prune au lieu de vĂ©rifier chaque fichier d’une arborescence. Remarquez que le test de correspondance de motif s’applique Ă  tout le nom du fichier en commençant par un des points de dĂ©part dĂ©signĂ© sur la ligne de commande. Ici, utiliser un chemin absolu n’aurait de sens que si le point de dĂ©part en question est aussi un chemin absolu. Cela veut dire que cette commande ne correspondra jamais :

find bidule -path /truc/bidule/monFichier -print

find compare l’argument -path Ă  la concatĂ©nation du nom du rĂ©pertoire et le nom de base du fichier en cours d’examen. La concatĂ©nation ne se terminant jamais par une barre oblique, les arguments -path qui se terminent par ce signe ne trouveront rien (sauf peut-ĂȘtre un point de dĂ©part spĂ©cifiĂ© sur la ligne de commande). Le prĂ©dicat -path est Ă©galement pris en charge par HP-UX find et fait partie du standard POSIX 2008.

-perm mode

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

-perm - mode

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

-perm / mode

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

-perm + mode

Cela n’est plus pris en charge (et obsolùte depuis 2005). Utilisez plutît -perm / mode .

-readable

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

-regex motif

Nom de fichier correspondant Ă  l’expression rationnelle motif . Il s’agit d’une correspondance sur le chemin complet, pas d’une recherche. Par exemple, pour mettre en correspondance un fichier nommĂ© « ./fubar3 », vous pouvez utiliser les expressions rationnelles « .*bar. » ou « .*b.*3 », mais pas « f.*r3 ». Les expressions rationnelles comprises par find sont, par dĂ©faut, celles d’Emacs, mais cela peut ĂȘtre changĂ© avec l’option -regextype .

-samefile nom

Fichier qui se rĂ©fĂšre au mĂȘme inƓud que nom . Quand -L est actif, cela inclut les liens symboliques.

-size n [ cwbkMG ]

Fichier utilisant moins de, plus de ou prĂ©cisĂ©ment n unitĂ©s d’espace arrondi au nombre supĂ©rieur. On pourra utiliser les suffixes suivants :

« b »

Pour des blocs de 512 octets (comportement par dĂ©faut si rien n’est indiquĂ©).

« c »

Pour indiquer des octets.

« w »

Pour des mots de deux octets.

« k »

Pour des kibioctets (Kio, unités de 1024 octets)

« M »

Pour des mébioctets (Mio, unités de 1024 * 1024 = 1048576 octets)

« G »

pour des gibioctets (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

répertoire

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. Si un lien symbolique est cassĂ© (parce que le sujet qu’il pointe n’existe pas ou que le lien pointe sur lui-mĂȘme), alors -xtype se comportera comme -type .

-context motif

(SELinux seulement) le contexte de sécurité du fichier correspond au motif global.

ACTIONS

-delete

Effacer les fichiers ou les rĂ©pertoires et renvoyer vrai si l’effacement a rĂ©ussi. Si l’effacement Ă©choue, un message d’erreur est envoyĂ© et le code de retour de find sera diffĂ©rent de zĂ©ro (quand finalement il s’interrompt).

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

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

Souvent, l’utilisateur voudrait tester une recherche find en ligne de commande avec -print avant d’ajouter -delete Ă  l’exĂ©cution rĂ©elle de la suppression. Pour Ă©viter des rĂ©sultats surprenants, il est habituellement prĂ©fĂ©rable de ne pas oublier d’utiliser -depth explicitement pendant l’exĂ©cution prĂ©alable du test.

L’action -delete Ă©chouera aussi Ă  supprimer un rĂ©pertoire Ă  moins qu’il ne soit vide.

Avec l’option -ignore_readdir_race , find ignorera les erreurs de l’action -delete si le fichier a disparu depuis que le rĂ©pertoire parent a Ă©tĂ© lu : il n’affichera pas de diagnostic d’erreur, ne changera pas le code d’erreur Ă  une valeur diffĂ©rente de zĂ©ro, et le code de retour de l’action -delete sera vrai.

-exec commande ;

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

-exec commande {} +

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

-execdir commande ;
-execdir
commande {} +

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

-fls fichier

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

- fprint fichier

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

-fprint0 fichier

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

-fprintf fichier format

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

-ls

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

-ok commande ;

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

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

-okdir commande ;

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

-print

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

-print0

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

-printf format

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

\a

Sonnerie.

\b

Effacement arriĂšre (Backspace).

\c

ArrĂȘter immĂ©diatement l’impression du format et vider le flux de sortie.

\f

Saut de page.

\n

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

%A k

Date du dernier accĂšs au fichier, dans le format spĂ©cifiĂ© par k , qui doit ĂȘtre soit un « @ », soit une directive pour la fonction C strftime (3). Les valeurs possibles de k sont indiquĂ©es ci-dessous. Veuillez vous reporter Ă  la documentation de strftime (3) pour la liste complĂšte. Certains caractĂšres de spĂ©cification de conversion pourraient ne pas ĂȘtre disponibles sur tous les systĂšmes, Ă  cause des diffĂ©rences entre les fonctions strftime (3) existantes.

@

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

Champs horaires :

H

heure (00..23)

I

heure (01..12)

k

Heure (0..23)

l

Heure (1..12)

M

minute (00..59)

p

AM ou PM, avec la désignation locale

r

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

S

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

T

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

+

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

X

ReprĂ©sentation locale de l’heure (H:M:S). Le champ secondes comprend une partie fractionnĂ©e.

Z

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

Champs de date :

a

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

A

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

b

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

B

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

c

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

d

QuantiĂšme du mois (01..31)

D

Date (mm/jj/aa)

F

Date (aaaa/mm/jj)

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

%B k

La date de « naissance » du fichier, c’est-Ă -dire sa date de crĂ©ation, au format spĂ©cifiĂ© par k qui est le mĂȘme que pour %A. Cette directive produit une chaĂźne vide si le systĂšme d’exploitation ou le systĂšme de fichiers sous-jacents ne gĂšrent pas les dates de crĂ©ation.

%c

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

%C k

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

%T k

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Ă© qui est un parent 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 GNU est conforme Ă  cette exigence. Le dĂ©compte des liens de rĂ©pertoires qui contiennent des liens en dur vers des rĂ©pertoires parents sera souvent infĂ©rieur Ă  ce qu’il serait autrement. Cela peut signifier que GNU find optimise parfois 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 de diagnostic 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 signifie souvent que find sait qu’il n’a pas Ă  appliquer stat () ou chdir () sur le lien symbolique et donc que ce diagnostic est souvent inutile.

L’option -d est gĂ©rĂ©e pour des raisons de compatibilitĂ© avec divers systĂšmes BSD, mais prĂ©fĂ©rez plutĂŽt l’utilisation de l’option -depth conforme Ă  POSIX.

Le positionnement de la variable d’environnement POSIXLY_CORRECT ne modifie pas le comportement des tests -regex ou -iregex parce que ces tests ne sont pas dĂ©finis dans le standard POSIX.

VARIABLES D’ENVIRONNEMENT

LANG

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

LC_ALL

Si elle contient une chaĂźne de caractĂšres non vide, remplace les valeurs de toutes les autres variables de localisation.

LC_COLLATE

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

LC_CTYPE

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

LC_MESSAGES

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

NLSPATH

DĂ©termine l’endroit oĂč sont rangĂ©s les catalogues de messages localisĂ©s.

PATH

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

POSIXLY_CORRECT

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

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

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

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

TZ

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

EXEMPLES

Approche simple de « find|xargs »

-

Rechercher les fichiers nommés core dans le répertoire /tmp ou dans ses sous-répertoires, puis les effacer.

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

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

Approche plus sûre de « find -print0 | xargs -0 »

-

Chercher les fichiers qui s’appellent core dans le rĂ©pertoire /tmp et ses sous-rĂ©pertoires, puis les effacer, en veillant Ă  ce que les noms de fichiers ou de rĂ©pertoires qui contiennent des guillemets simples ou doubles, des espaces ou des retours Ă  la ligne soient correctement traitĂ©s.

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

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

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

Traitement de points de départ arbitraires

-

Étant donnĂ© qu’un autre programme programme exĂ©cute un prĂ©-filtre et crĂ©e une Ă©norme liste de fichiers sĂ©parĂ©s par des caractĂšres NULL, les traiter comme points de dĂ©part et trouver tous les fichiers normaux parmi eux :

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

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

Exécuter une commande pour chaque fichier

-

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

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

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

Dans de nombreux cas, on pourrait prĂ©fĂ©rer la syntaxe ‘-exec ... +‘ , voire mĂȘme ‘-execdir ... +‘ , pour des raisons de performance et de sĂ©curitĂ©.

Explorer une fois le systÚme de fichiers - pour deux actions différentes

-

Parcourir le systÚme de fichiers en une seule passe, stockant les fichiers et répertoires en setuid dans /root/suid.txt et les gros fichiers dans /root/grand.txt .

$ find / \

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

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

Rechercher des fichiers par leur Ăąge

-

Rechercher les fichiers dans votre dossier personnel qui ont été modifiés pendant les derniÚres vingt-quatre heures.

$ find $HOME -mtime 0

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

Rechercher les fichiers par leurs permissions

-

Rechercher les fichiers qui offrent le droit d’exĂ©cution, mais qui ne sont pas lisibles.

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

-

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

$ find . -perm 664

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

-

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

$ find . -perm -664

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

-

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

$ find . -perm /222

-

Rechercher les fichiers qui offrent le droit d’écriture Ă  leur propriĂ©taire ou Ă  leur groupe.

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

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

-

Rechercher les fichiers qui offrent le droit d’écriture Ă  leur propriĂ©taire et Ă  leur groupe.

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

Ces deux commandes font la mĂȘme chose.

-

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

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

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

DĂ©couper – omettre des fichiers et des sous-rĂ©pertoires

-

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

$ cd /répertoire-source
$ find . -name .snapshot -prune -o \( \! -name '*˜' -print0 \) \

| cpio -pmd0 /dest-dir

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

-

Étant donnĂ© les rĂ©pertoires de projets suivants et les rĂ©pertoires d’administration de leurs systĂšmes de gestion de configuration, effectuer une recherche efficace dans les racines des projets :

$ find repo/ \

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

Exemple de sortie :

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

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

Autres exemples utiles

-

Rechercher plusieurs types de fichiers.

$ find /tmp -type f,d,l

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

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

-

Rechercher les fichiers du nom particulier needle et arrĂȘter immĂ©diatement dĂšs qu’on trouve le premier.

$ find / -name needle -print -quit

-

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

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

CODE DE RETOUR

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

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

HISTORIQUE

Le programme find est apparu dans la version 5 d’Unix faisant partie du « Programmer’s Workbench project » et a Ă©tĂ© Ă©crit par Dick Haight. Le manuel de Doug McIlroy A Research UNIX Reader : Annotated Excerpts from the Programmer’s Manual, 1971-1986 fournit quelques dĂ©tails supplĂ©mentaires ; il est possible de le lire en ligne Ă  <https://www.cs.dartmouth.edu/˜doug/reader.pdf>.

GNU find a Ă©tĂ© Ă©crit Ă  l’origine par Eric Decker et amĂ©liorĂ© par David MacKenzie, Jay Plett et Tim Wood. L’idĂ©e pour find -print0 et xargs -0 vient de Dan Bernstein.

COMPATIBILITÉ

À 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 code de retour 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, le code de retour de find n’était pas modifiĂ© par l’échec de -delete .

Image grohtml-3901849-2.png

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–2024 Free Software Foundation, Inc. Licence GPLv3+ : GNU GPL version 3 ou supĂ©rieure <https://gnu.org/licenses/gpl.html>.
Ce programme est un logiciel libre. Vous pouvez le modifier et le redistribuer. Il n’y a AUCUNE GARANTIE dans la mesure autorisĂ©e par la loi.

VOIR AUSSI

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

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

TRADUCTION

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

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