.\" -*- coding: UTF-8 -*- .\" -*- nroff -*- .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH FIND 1 '\" t .SH NOM find \- Rechercher des fichiers dans une hiérarchie de répertoires .SH SYNOPSIS \fBfind\fP [\fB\-H\fP] [\fB\-L\fP] [\fB\-P\fP] [\fB\-D\fP \fIoptions_débogage\fP] [\fB\-O\fP\fIniveau\fP] [\fIpoint\-départ\fP...\&] [\fIexpression\fP] . .SH DESCRIPTION Cette page de manuel documente la version GNU de \fBfind\fP. GNU \fBfind\fP 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 \fIet\fP, vraie pour un opérateur \fIou\fP), puis \fBfind\fP passe au nom de fichier suivant. Si aucun point de départ n'est spécifié, «\ .\&\ » est présumé. .PP Si vous utilisez \fBfind\fP 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 \fBFinding Files\fP et qui est fournie par \fBfindutils\fP. Ce document contient bien plus de détails et d'explications que cette page de manuel et peut donc être considérée comme une source d'informations plus utile. . .SH OPTIONS Les options \fB\-H\fP, \fB\-L\fP et \fB\-P\fP 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 \fB\-print\fP qui est utilisée (quoi qu'il en soit, vous devriez plutôt utiliser \fB\-print0\fP). .PP Cette page de manuel décrit les «\ options\ » contenues dans la liste d'expressions. Ces options contrôlent le comportement de \fBfind\fP, mais sont indiquées immédiatement après le dernier chemin. Les cinq options «\ réelles\ » \fB\-H\fP, \fB\-L\fP, \fB\-P\fP, \fB\-D\fP et \fB\-O\fP doivent être saisies avant le premier chemin, le cas échéant. Un double tiret \fB\-\-\fP 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 \fBfind\fP 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 «\ \-\ », \fBfind\fP 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 \fB\-files0\-from\fP pour passer des points de départ arbitraires à \fBfind\fP. .IP \-P Ne jamais suivre les liens symboliques. C'est le comportement par défaut. Quand \fBfind\fP 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. .IP \-L Suivre les liens symboliques. Quand \fBfind\fP 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 \fBfind\fP est incapable d'analyser le fichier vers lequel pointe le lien). L'utilisation de cette option implique \fB\-noleaf\fP qui sera toujours active pour les utilisations ultérieures de l'option \fB\-P\fP. Si l'option \fB\-L\fP est active et que \fBfind\fP 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é. .IP Quand l'option \fB\-L\fP est active, le prédicat \fB\-type\fP 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 \fBfind\fP (par exemple \fB\-delete\fP) peuvent aboutir à des comportements perturbants. L'utilisation de \fB\-L\fP fait toujours renvoyer faux à \fB\-lname\fP et \fB\-ilname\fP. .IP \-H Ne pas suivre les liens symboliques, sauf pour le traitement des paramètres de la ligne de commande. Quand \fBfind\fP 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 \fB\-H\fP 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 \fB\-maxdepth\ 0\fP l'en empêcherait). .P Si plus d'une option parmi \fB\-H\fP, \fB\-L\fP ou \fB\-P\fP 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 \fB\-P\fP qui est active, à moins que \fB\-H\fP ou \fB\-L\fP ne soient utilisées. La version \fBfind\fP 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 \fB\-P\fP est active (ou que ni \fB\-H\fP ni \fB\-L\fP 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 \fBfind\fP 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. .P Quand les options \fB\-H\fP ou \fB\-L\fP sont actives, tout lien symbolique donné comme paramètre à \fB\-newer\fP 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 à \fB\-newerXY\fP, \fB\-anewer\fP et \fB\-cnewer\fP. L'option \fB\-follow\fP a le même effet que \fB\-L\fP, sauf qu'elle agit à l'endroit où elle apparaît (c'est\-à\-dire que si \fB\-L\fP n'est pas utilisée et que \fB\-follow\fP l'est, tout lien symbolique qui apparaît sur la ligne de commande après \fB\-follow\fP sera déréférencé et ceux apparaissant avant ne le seront pas). .IP "\fB\-D\fP \fIoptions_débogage\fP" Afficher des informations de diagnostic, ce qui peut être pratique pour analyser pourquoi \fBfind\fP 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 \fBfindutils\fP. La sortie de \fBfind\ \-D\fP\ \fBhelp\fP permet d'obtenir la liste complète des options reconnues. Les options de débogage autorisées comprennent .RS .IP \fIexec\fP Afficher des informations de diagnostic liées à \fB\-exec\fP, \fB\-execdir\fP, \fB\-ok\fP et \fB\-okdir\fP .IP \fIopt\fP Afficher des informations de diagnostic liées à l'optimisation de l'arbre de l'expression (voir l'option\ \fB\-O\fP). .IP \fIrates\fP Afficher un résumé indiquant le nombre de succès ou d'échecs de chacun des prédicats. .IP \fIsearch\fP Naviguer dans l'arborescence du répertoire de manière bavarde. .IP stat Afficher des messages dès que des fichiers sont examinés à l’aide des appels système \fBstat\fP et \fBlstat\fP. Le programme \fBfind\fP tente de limiter ce type d'appels. .IP \fItree\fP Afficher l'arbre de l'expression dans sa forme d'origine et sa forme optimisée. .IP all Activer toutes les autres options de débogage (sauf \fBhelp\fP). .IP help Décrire les options de débogage. .RE .IP \fB\-O\fP\fIniveau\fP Activer l'optimisation des requêtes. Le programme \fBfind\fP 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. .RS .IP 0 Équivalent au niveau \fB1\fP d'optimisation. .IP 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 \fB\-name\fP ou \fB\-regex\fP) soient exécutés en premier. .IP 2 Tous les tests \fB\-type\fP ou \fB\-xtype\fP 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 \fBreaddir\fP() et sont donc plus rapides à évaluer que ceux qui nécessitent de travailler d'abord sur le fichier. Si vous utilisez le prédicat \fB\-fstype\fP\ \fITOTO\fP et si vous spécifiez un type de système de fichiers \fITOTO\fP non connu (à savoir présent dans \fI/etc/mtab\fP), au moment du démarrage de \fBfind\fP, ce prédicat est équivalent à \fB\-false\fP. .IP 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 \fB\-o\fP, les prédicats qui sont susceptibles de réussir sont évalués plus tôt, et avec l'opérateur \fB\-a\fP, ce sont ceux qui risquent d'échouer qui sont évalués plus tôt. .RE .IP 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 \fB\-type\ f\fP est supérieure à celle d'un \fB\-type\ c\fP). L'optimiseur basé sur le coût est actuellement en cours d'évaluation. S'il n'améliore pas les performances de \fBfind\fP, 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\ \fB1\fP) ne sera pas modifié dans les différentes versions de la série\ 4.3.x. La suite de tests unitaires de \fBfindutils\fP est exécutée sur chacun des niveaux d'optimisation de \fBfind\fP afin de s'assurer que le résultat est constant. . .SH EXPRESSIONS La partie de la ligne de commande après la liste des points de départ est l'\fIexpression\fP. 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\ : .IP Tests Tests renvoie une valeur vrai ou faux, habituellement à partir d'une propriété d'un fichier en question. Par exemple, le test \fB\-empty\fP n'est vrai que lorsque le fichier courant est vide. .IP 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 \fB\-print\fP affiche le nom du fichier courant sur la sortie standard. .IP "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 \fB\-depth\fP amène \fBfind\fP à traverser le système de fichiers par ordre de profondeur. .IP "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 \fB\-regextype\fP est une option de position qui spécifie le dialecte de l'expression régulière intervenant plus tard sur la ligne de commande. .IP Opérateurs Les opérateurs sont ajoutés aux autres éléments dans une expression. On y trouve par exemple \fB\-o\fP (pour l'option logique OU) et \fB\-a\fP (pour l'option logique ET). \fB\-a\fP est supposé quand aucun opérateur n'est spécifié. .P L'action \fB\-print\fP s'effectue sur tous les fichiers pour lesquels l'expression entière est vrai, sauf si elle contient une autre action que \fB\-prune\fP ou \fB\-quit\fP. Les actions qui désactivent le \fB\-print\fP par défaut sont \fB\-delete\fP, \fB\-exec\fP, \fB\-execdir\fP, \fB\-ok\fP, \fB\-okdir\fP, \fB\-fls\fP, \fB\-fprint\fP, \fB\-fprintf\fP, \fB\-ls\fP, \fB\-print\fP et \fB\-printf\fP. L'action \fB\-delete\fP agit aussi comme une option (puisqu'elle implique \fB\-depth\fP). .SS "OPTIONS DE POSITION" Les options de position renvoient toujours vrai. Elles ne concernent que les tests qui apparaissent ensuite sur la ligne de commande. .IP \fB\-daystart\fP Mesurer les temps (avec \fB\-amin\fP, \fB\-atime\fP, \fB\-cmin\fP, \fB\-ctime\fP, \fB\-mmin\fP, et \fB\-mtime\fP) 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. .IP \fB\-follow\fP Obsolète, utilisez plutôt l'option \fB\-L\fP à la place. Déréférence les liens symboliques. Cela implique l'option \fB\-noleaf\fP. L'option \fB\-follow\fP n'affecte que les tests qui apparaissent après son apparition sur la ligne de commande. Sauf dans le cas où l'option \fB\-H\fP ou \fB\-L\fP est indiquée, la position de l'option \fB\-follow\fP change le comportement du prédicat \fB\-newer\fP, et tout fichier donné en paramètre de \fB\-newer\fP sera déréférencé s'il s'agit d'un lien symbolique. La même remarque s'applique à \fB\-newerXY\fP, \fB\-anewer\fP et \fB\-cnewer\fP. De la même façon, le prédicat \fB\-type\fP correspondra toujours au type du fichier pointé par le lien symbolique plutôt qu’au lien lui\-même. Les prédicats \fB\-lname\fP et \fB\-ilname\fP renvoient toujours faux lorsqu'on utilise \fB\-follow\fP. .IP "\fB\-regextype\fP \fItype\fP" Définir la syntaxe de l'expression rationnelle des tests \fB\-regex\fP et \fB\-iregex\fP qui seront indiqués plus loin sur la ligne de commande. Pour voir les types d'expression régulière connus, utilisez \fB\-regextype\fP\ \fBhelp\fP. La documentation de Texinfo (voir \fBVOIR\fP \fBAUSSI\fP) explique la signification et les différences entre les différents types d'expression régulière. .IP "\fB\-warn\fP, \fB\-nowarn\fP" 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 \fBfind\fP peut rencontrer lorsqu'il explore les répertoires. Le comportement par défaut est d'activer \fB\-warn\fP si l'entrée standard est un tty et \fB\-nowarn\fP dans les autres cas. Si un message d'avertissement est produit concernant l'utilisation de la ligne de commande, l’état de sortie de \fBfind\fP n'est pas affecté. Si la variable d'environnement \fBPOSIXLY_CORRECT\fP est définie et si \fB\-warn\fP est utilisé, rien ne dit quels messages d'avertissement seront actifs s'il y en a. .SS "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, \fBfind\fP 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\ \fB\-L\fP. .IP \-d Un synonyme de \fB\-depth\fP, dans un but de compatibilité avec FreeBSD, NetBSD, MacOS\ X et OpenBSD. .IP \fB\-depth\fP Traiter d'abord les sous\-répertoires avant le répertoire lui\-même. L'action \fB\-delete\fP implique aussi \fB\-depth\fP. .IP "\-files0\-from \fIfichier\fP" Lire les points de départ à partir de \fIfichier\fP 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 à \fBfind\fP. Utiliser cette option et passer les points de départ en ligne de commande s'exluent mutuellement et cela n'est donc pas permis en même temps. L'argument \fIfichier\fP est obligatoire. Il est possible d'utiliser \fB\-files0\-from\ \-\fP pour lire la liste des points de départ à partir du flux de l'\fIentrée standard\fP, et par exemple d'un tube. Dans ce cas, les actions \fB\-ok\fP et \fB\-okdir\fP ne sont pas permises parce qu'elles interféreraient de façon évidente avec la lecture à partir de l'\fIentrée standard\fP afin d'obtenir une confirmation de l'utilisateur. Les points de départ dans \fIfichier\fP 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 \fIfichier\fP donné en argument est vide, \fBfind\fP 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ù \fBfind\fP 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 \fBfind\fP 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 \fB\-maxdepth\ 0\fP 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 \fIfichier\fP est déplacé pendant le fonctionnement de \fBfind\fP, le résultat n'est pas précisé non plus. Enfin, la position de la recherche à l'intérieur du \fIfichier\fP nommé au moment où \fBfind\fP quitte, que se soit avec la commande \fBquit\fP 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 \fBfindutils\fP. .IP "\fB\-help\fP, \fB\-\-help\fP" Afficher un message d'aide concernant l'utilisation de \fBfind\fP sur la sortie standard et quitter. .IP \fB\-ignore_readdir_race\fP Normalement, \fBfind\fP 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ù \fBfind\fP 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 \fBfind\fP, une avec l'option et l'autre sans). De plus, \fBfind\fP avec l'option \fB\-ignore_readdir_race\fP ignorera les erreurs de l'action \fB\-delete\fP 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 \fB\-delete\fP sera vrai. .IP "\fB\-maxdepth\fP \fIn\fP" Descendre au plus à \fIn\fP niveaux de profondeur des répertoires (\fIn\fP étant un entier positif ou nul) sous le point de départ. \fB\-maxdepth\ 0\fP signifie de n'appliquer les tests et les actions qu'aux points de départ eux\-mêmes. .IP "\fB\-mindepth\fP \fIn\fP" Ne pas appliquer les tests ou les actions à des niveaux de profondeur inférieurs à \fIn\fP (un entier non négatif). \fIn\fP est un entier positif ou nul. \fB\-mindepth\ 1\fP signifie que les tests et les actions s'appliquent à tous les fichiers sauf aux points de départ. .IP \fB\-mount\fP Ne pas parcourir les répertoires situés sur d'autres systèmes de fichiers. Il s'agit d'une alternative à l'option \fB\-xdev\fP, assurant la compatibilité avec d'anciennes versions de \fBfind\fP. .IP \fB\-noignore_readdir_race\fP Désactiver l'effet de \fB\-ignore_readdir_race\fP. .IP \fB\-noleaf\fP 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 \fBfind\fP 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. .IP "\fB\-version\fP, \fB\-\-version\fP" Afficher le numéro de version de \fBfind\fP et quitter. .IP \fB\-xdev\fP Ne pas parcourir les répertoires situés sur d'autres systèmes de fichiers. .SS TESTS Quelques tests (comme \fB\-newerXY\fP et \fB\-samefile\fP 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 \fB\-H\fP, \fB\-L\fP, \fB\-P\fP et tout \fB\-follow\fP 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 \fBstat\fP(2) échoue), un message d'erreur sera généré et la commande \fBfind\fP s'interrompra avec un statut différent de zéro. .P Un paramètre numérique \fIn\fP peut être passé aux tests (comme \fB\-amin\fP, \fB\-mtime\fP, \fB\-gid\fP, \fB\-inum\fP, \fB\-links\fP, \fB\-size\fP, \fB\-uid\fP et \fB\-used\fP) ainsi .IP \fI+n\fP supérieur à \fIn\fP, .IP \fB\-n\fP inférieur à \fIn\fP, .IP \fIn\fP strictement égal à \fIn\fP. . .P Tests pris en charge\ : .IP "\fB\-amin\fP \fIn\fP" Dernier accès au fichier il y a plus de, moins de ou précisément \fIn\fP minutes. .IP "\fB\-anewer\fP \fIréférence\fP" La date du dernier accès au fichier actuel est plus récente que la dernière modification du fichier \fIréférence\fP. Si \fIréférence\fP est un lien symbolique et que les options \fB\-H\fP ou \fB\-L\fP sont actives, c'est toujours la date de dernière modification du fichier pointé qui est utilisée. .IP "\fB\-atime\fP \fIn\fP" Dernier accès au fichier il y a plus de, moins de ou précisément \fIn\fP*24 heures. Lorsque \fBfind\fP 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 à \fB\-atime\fP \fB+1\fP, il faut qu'un accès au fichier ait eu lieu il y a au moins \fIdeux\fP jours. .IP "\fB\-cmin\fP \fIn\fP" Date de dernière modification de l’état du fichier il y a plus de, moins de ou précisément \fIn\fP minutes. .IP "\fB\-cnewer\fP \fIréférence\fP" La date de dernière modification de l’état du fichier est plus récente que la date de dernière modification du fichier \fIréférence\fP donné. Si le fichier \fIréférence\fP donné est un lien symbolique et que les options \fB\-H\fP ou \fB\-L\fP 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. .IP "\fB\-ctime\fP \fIn\fP" Date de dernière modification de l'état du fichier il y a plus de, moins de ou précisément \fIn\fP*24 heures. Consultez l'explication concernant \fB\-atime\fP pour comprendre comment l’effet d'arrondi altère l'interprétation de la date de dernière modification de l'état du fichier. .IP \fB\-empty\fP Fichier vide. De plus, ce fichier doit être un fichier normal ou un répertoire. .IP \fB\-executable\fP 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 \fB\-perm\fP qui, lui, les ignore. Ce test utilise l'appel système \fBaccess\fP(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 \fBaccess\fP(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 \fBaccess\fP(2), il n'y a aucune garantie qu'un fichier trouvé par ce test soit réellement exécutable. .IP \fB\-false\fP Toujours faux. .IP "\fB\-fstype\fP \fItype\fP" Fichier se trouvant sur un système de fichiers du \fItype\fP 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 \fB\-printf\fP avec la directive %F pour examiner les types de vos systèmes de fichiers. .IP "\fB\-gid\fP \fIn\fP" Fichier dont le GID numérique vaut plus de, moins de ou précisément \fIn\fP. .IP "\fB\-group\fP \fInom_groupe\fP" Fichier appartenant au groupe \fInom_groupe\fP (éventuellement un identifiant numérique). .IP "\fB\-ilname\fP \fImotif\fP" Semblable à \fB\-lname\fP, mais sans différencier les majuscules et les minuscules. Si les options \fB\-L\fP ou \fB\-follow\fP sont actives, ce test renvoie toujours faux, à moins que le lien symbolique ne soit cassé. .IP "\fB\-iname\fP \fImotif\fP" Semblable à \fB\-name\fP, 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\ ». .IP "\fB\-inum\fP \fIn\fP" Fichier dont le numéro d'inœud est inférieur à, supérieur à ou égal à \fIn\fP. Il est en général plus facile d'utiliser le test \fB\-samefile\fP. .IP "\fB\-ipath\fP \fImotif\fP" Semblable à \fB\-path\fP, mais sans différencier les majuscules et les minuscules. .IP "\fB\-iregex\fP \fImotif\fP" Semblable à \fB\-regex\fP, mais sans différencier les majuscules et les minuscules. .IP "\fB\-iwholename\fP \fImotif\fP" Voir \fB\-ipath\fP. Cette option est moins portable que \fB\-ipath\fP. .IP "\fB\-links\fP \fIn\fP" Fichier ayant moins de, plus de ou précisément \fIn\fP liens physiques. .IP "\fB\-lname\fP \fImotif\fP" Fichier représentant un lien symbolique, dont le contenu correspond au \fImotif\fP indiqué. Lors du développement des métacaractères, «\ /\ » et «\ .\ » ne sont pas traités différemment des autres caractères. Si les options \fB\-L\fP ou \fB\-follow\fP sont actives, ce test renvoie faux, sauf si le lien symbolique est cassé. .IP "\fB\-mmin\fP \fIn\fP" Fichier dont les données ont été modifiées il y a plus de, moins de ou précisément \fIn\fP minutes. .IP "\fB\-mtime\fP \fIn\fP" Fichier dont les données ont été modifiées il y a moins de, plus de ou précisément \fIn\fP*24 heures. Consultez l'explication sur \fB\-atime\fP pour comprendre comment les arrondis affectent l'interprétation des dates de modification des fichiers. .IP "\fB\-name\fP \fImotif\fP" Fichier dont le nom de base (chemin sans le répertoire parent) correspond au \fImotif\fP du shell. Les répertoires parent étant supprimés, les noms de fichier englobés dans une recherche avec \fB\-name\fP n'incluront jamais de barre oblique, donc «\ \-name a/b\ » ne trouvera rien (vous devrez probablement utiliser plutôt \fB\-path\fP). Un avertissement apparaît si vous essayez de le faire, sauf si la variable d'environnement \fBPOSIXLY_CORRECT\fP est définie. Les métacaractères («\ *\ », «\ ?\ », et «\ []\ ») peuvent correspondre à un point «\ .\ » au début du nom du fichier (c'est une évolution de findutils\-4.2.2, consultez la section CONFORMITÉ AUX STANDARDS ci\-dessous). Pour ignorer un répertoire, ainsi que tous ses fichiers, utilisez l'option \fB\-prune\fP 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 \fBfnmatch\fP(3) de la bibliothèque. N'oubliez pas de protéger votre motif entre des guillemets afin d'éviter le développement des métacaractères par l'interpréteur de commandes. .IP "\fB\-newer\fP \fIréférence\fP" La date de la dernière modification du fichier courant est plus récente que celle du fichier \fIréférence\fP indiqué. Si le fichier \fIréférence\fP est un lien symbolique et que les options \fB\-H\fP ou \fB\-L\fP sont actives, c'est la date de modification du fichier pointé qui sera considérée. .IP "\fB\-newerXY\fP \fIréférence\fP" Réussit si l'horodatage \fIX\fP d'un fichier est plus récent que celui \fIY\fP d'un fichier \fIréférence\fP. Les lettres \fIX\fP et \fIY\fP peuvent être une des suivantes\ : .TS ll ll ll ll llw(2i). a La date et l'heure de dernier accès au fichier \fIréférence\fP B La date et l'heure de création du fichier \fIréférence\fP c La date et l'heure de changement d'état de l'inœud \fIréférence\fP m La date et l'heure de dernière modification du fichier \fIréférence\fP t \fIréférence\fP est directement interprétée en tant qu'heure .TE Certaines combinaisons ne sont pas valables, comme \fIX\fP utilisé avec \fIt\fP. Certaines combinaisons ne sont pas implémentées sur certains systèmes, comme \fIB\fP 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 \fIXY\fP est appelée. Les dates et heures sont interprétées comme les arguments de l'option \fB\-d\fP de la commande \fBdate\fP 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. .IP \fB\-nogroup\fP Fichier dont l'identifiant de groupe numérique ne correspond à aucun groupe d'utilisateurs. .IP \fB\-nouser\fP Fichier dont l'UID numérique ne correspond à aucun utilisateur. .IP "\fB\-path\fP \fImotif\fP" Fichier dont le nom correspond au motif \fImotif\fP. Les métacaractères «\ /\ » ou «\ .\ » ne sont pas interprétés, d'où, par exemple, .in +4m .nf find . \-path "./sr*sc" .fi .in affichera une entrée pour un répertoire nommé \fI./src/misc\fP (s'il en existe un). Pour ignorer toute une arborescence, utilisez \fB\-prune\fP 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\ : .br .in +4m .nf find bidule \-path /truc/bidule/monFichier \-print .fi .in \fBfind\fP compare l'argument \fB\-path\fP à 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 \fB\-path\fP 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 \fB\-path\fP est également pris en charge par HP\-UX \fBfind\fP et fait partie du standard POSIX\ 2008. .IP "\fB\-perm\fP \fImode\fP" Fichier dont les bits d'autorisations sont fixés exactement au \fImode\fP 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, \fB\-perm\ g=w\fP 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 \fB\-perm\ \-g=w\fP, qui correspondent à tous les fichiers qui ont le droit d'écriture pour les groupes. Consultez la section \fBEXEMPLES\fP pour des exemples plus significatifs. .IP "\fB\-perm\fP \fB\-\fP\fImode\fP" Fichier ayant tous les bits d'autorisations indiqués dans le \fImode\fP. 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 \fBEXEMPLES\fP pour des exemples plus significatifs. .IP "\fB\-perm\fP \fB/\fP\fImode\fP" Fichier ayant certains des bits d'autorisations indiqués dans le \fImode\fP. 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 \fBEXEMPLES\fP pour des exemples plus significatifs. Si aucun bit d'autorisation n'est indiqué dans \fImode\fP, cela correspond à tous les fichiers (l'objectif est d'être cohérent avec le comportement de \fBperm\fP\ \fB\-000\fP). .IP "\fB\-perm\fP \fB+\fP\fImode\fP" Cela n'est plus pris en charge (et obsolète depuis 2005). Utilisez plutôt \fB\-perm\fP\ \fB/\fP\fImode\fP. .IP \fB\-readable\fP 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 \fB\-perm\fP qui, lui, les ignore. Ce test utilise l'appel système \fBaccess\fP(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 \fBaccess\fP(2) au niveau du client et ne peuvent donc pas se servir des substitutions d'identités gérées du coté serveur. .IP "\fB\-regex\fP \fImotif\fP" Nom de fichier correspondant à l'expression rationnelle \fImotif\fP. 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 \fBfind\fP sont, par défaut, celles d'Emacs (excepté que «\ .\ » correspond avec retour ligne). L'option \fB\-regextype\fP permet d'en changer. .IP "\fB\-samefile\fP \fInom\fP" Fichier qui se réfère au même inœud que \fInom\fP. Quand \fB\-L\fP est actif, cela inclut les liens symboliques. .IP "\fB\-size\fP \fIn\fP[\fIcwbkMG\fP]" Fichier utilisant moins de, plus de ou précisément \fIn\fP unités d'espace arrondi au nombre supérieur. On pourra utiliser les suffixes suivants\ : .RS .IP «\ \fIb\fP\ » Pour des blocs de 512 octets (comportement par défaut si rien n'est indiqué). .IP «\ \fIc\fP\ » Pour indiquer des octets. .IP «\ \fIw\fP\ » Pour des mots de deux octets. .IP «\ \fIk\fP\ » Pour des kilooctets informatiques (KiO, unités de 1024\ octets) .IP «\ \fIM\fP\ » Pour des mégaoctets informatiques (MiO, unités de 1024 * 1024 = 1\|048\|576\ octets) .IP «\ \fIG\fP\ » pour des gigaoctets informatiques (GiO, unités de 1024 * 1024 * 1024 = 1\|073\|741\|824\ octets) .RE .IP La taille est simplement le membre \fIst_size\fP de \fIstruct\ stat\fP remplie par l'appel système \fBlstat\fP (ou \fBstat\fP), arrondie à l'unité supérieure comme décrit ci\-dessus. En d'autres termes, il est cohérent avec le résultat de \fBls\ \-l\fP. Souvenez\-vous que les spécificateurs de format «\ %k\ » et «\ %b\ » de \fB\-printf\fP 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 \fB\-ls\fP. .IP Les préfixes \fB+\fP et \fB\-\fP signifient, comme d'habitude, plus grand que et plus petit que\ ; ainsi une taille exacte de \fIn\fP unités ne correspond pas. Retenez que la taille est arrondie à l'unité supérieure. Donc \fB\-size\ \-1M\fP n'équivaut pas à \fB\-size\ \-1\|048\|576c\fP. Le premier ne correspond qu'à des fichiers vides, le second à des fichiers pesant entre 0 et 1\ 048\ 575\ octets. .IP \fB\-true\fP Toujours vrai. .IP "\fB\-type\fP \fIc\fP" Fichier du type \fIc\fP\ : .RS .IP b Fichier spécial en mode bloc (avec tampon) .IP c Fichier spécial en mode caractère (sans tampon) .IP d \fBdirectory\fP .IP p Tube nommé (FIFO) .IP f fichier normal .IP l Lien symbolique, n'est jamais vrai si les options \fB\-L\fP ou \fB\-follow\fP sont actives, à moins que le lien symbolique ne soit cassé. Si vous voulez rechercher des liens symboliques alors que \fB\-L\fP est actif, utilisez \fB\-xtype\fP. .IP s socket .IP D \fIDoor\fP (Solaris) .RE .IP 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). .IP "\fB\-uid\fP \fIn\fP" Fichier dont l'identifiant utilisateur numérique vaut plus de, moins de ou précisément \fIn\fP. .IP "\fB\-used\fP \fIn\fP" Fichier dont le dernier accès date de plus de, moins de ou précisément \fIn\fP jours après la date de sa dernière modification. .IP "\fB\-user\fP \fIutilisateur\fP" Fichier appartenant à l'\fIutilisateur\fP indiqué (identifiant utilisateur numérique éventuellement). .IP "\fB\-wholename\fP \fImotif\fP" Voir \fB\-path\fP. Cette option est moins portable que \fB\-path\fP. .IP \fB\-writable\fP 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 \fB\-perm\fP qui, lui, les ignore. Ce test utilise l'appel système \fBaccess\fP(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 \fBaccess\fP(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. .IP "\fB\-xtype\fP \fIc\fP" Semblable à \fB\-type\fP sauf si le fichier est un lien symbolique. Pour les liens symboliques, si les options \fB\-H\fP ou \fB\-P\fP ont été spécifiées, le test est vrai si le fichier pointé par le lien est de type \fIc\fP\ ; si l'option \fB\-L\fP a été spécifiée, le test est vrai si \fIc\fP vaut «\ l\ ». Autrement dit, pour les liens symboliques, \fB\-xtype\fP vérifie le type des fichiers que l'option \fB\-type\fP ne vérifie pas. .IP "\fB\-context\fP \fImotif\fP" (SELinux seulement) le contexte de sécurité du fichier correspond au \fImotif\fP global. .SS ACTIONS .IP \fB\-delete\fP Effacer les fichiers ou les repertoires et renvoyer vrai si l'effacement a réussi. Si l'effacement échoue, un message d'erreur est envoyé et le code de retour de \fBfind\fP sera différent de zéro (quand finalement il s'interrompt). \fBAttention\fP\ : N'oubliez pas que \fBfind\fP évalue la ligne de commande comme une expression. Aussi placer \fB\-delete\fP en premier fera que \fBfind\fP essaiera de détruire tout ce qu'il trouvera sous le point de départ spécifié. L'utilisation de l'action \fB\-delete\fP en ligne de commande active automatiquement l'option \fB\-depth\fP. Comme à son tour \fB\-depth\fP rend \fB\-prune\fP inefficace, l'action \fB\-delete\fP ne peut pas être combinée de façon utile avec \fB\-prune\fP. Souvent, l'utilisateur voudrait tester une recherche en ligne de commande avec \fB\-print\fP avant d'ajouter \fB\-delete\fP à 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 \fB\-depth\fP explicitement pendant l'exécution préalable de ces tests. L'action \fB\-delete\fP échouera aussi à supprimer un répertoire à moins qu'il ne soit vide. Avec l'option \fB\-ignore_readdir_race\fP, \fBfind\fP ignorera les erreurs de l'action \fB\-delete\fP 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 \fB\-delete\fP sera vrai. .IP "\fB\-exec\fP \fIcommande\fP \fB;\fP" Exécuter la \fIcommande\fP\ ; vrai si le code de retour \fB0\fP est renvoyé. Tous les paramètres qui suivent \fBfind\fP 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 \fBfind\fP. 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 («\ \e\ ») ou une protection par des guillemets. Consultez la section \fBEXEMPLES\fP pour des exemples d'utilisation de l'option \fB\-exec\fP. 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 \fB\-exec\fP, c'est pourquoi vous devriez utiliser l'option \fB\-execdir\fP à la place. .IP "\fB\-exec\fP \fIcommande\fP \fB{}\fP \fB+\fP" Cette variante de l'option \fB\-exec\fP 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 \fBxargs\fP. 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 «\ \e\ ») 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 \fBfind\fP renvoie un code de retour différent de zéro. Si \fBfind\fP 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 \fB\-exec\ ma_commande\ ...\ {}\ \e+\ \-quit\fP peut n'aboutir à aucune exécution de \fBma_commande\fP. Cette variante de \fB\-exec\fP renvoie toujours vrai. .IP "\fB\-execdir\fP \fIcommande\fP \fB;\fP" .IP "\fB\-execdir\fP \fIcommande\fP \fB{}\fP \fB+\fP" Semblable à \fB\-exec\fP, 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é \fBfind\fP. Comme avec \fB\-exec\fP, \fB{}\fP devrait être entouré de guillemets si \fBfind\fP 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 \fB\-exec\fP, la forme de \fB\-execdir\fP avec «\ +\ » construira une ligne de commande de telle sorte qu'elle pourra traiter plusieurs fichiers trouvés en une passe, mais chaque invocation de \fIcommande\fP 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 \fBPATH\fP 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 \fB\-execdir\fP. De la même manière, évitez les références vides ou les noms de répertoires exprimés en relatif dans \fBPATH\fP. Si une invocation avec la forme «\ +\ » renvoie un état de sortie autre que zéro, \fBfind\fP renvoie un état de sortie qui n'est pas zéro. Si \fBfind\fP 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 \fB+\fP ou \fB;\fP\ ; \fB\-execdir\fP\ \fIcommande\fP\ \fB{}\ +\fP renvoie toujours vrai alors que \fB\-execdir\fP\ \fIcommande\fP\ \fB{}\ ;\fP ne renvoie vrai que si \fIcommande\fP renvoie\ \fB0\fP. .IP "\fB\-fls\fP \fIfichier\fP" Vrai\ ; semblable à \fB\-ls\fP, mais écrire dans le \fIfichier\fP comme le fait \fB\-fprint\fP. Le fichier en sortie est toujours créé, même si le prédicat n'est jamais vérifié. Consultez la section \fBNOMS DE FICHIERS PEU COURANTS\fP pour obtenir des informations sur la gestion des caractères inhabituels dans les noms de fichier. .IP "\-\fBfprint\fP \fIfichier\fP" Vrai\ ; écrire le nom complet dans le \fIfichier\fP. Si \fIfichier\fP n'existe pas au démarrage de \fBfind\fP, il est créé. S'il existe, il est écrasé. Les noms de fichier \fI/dev/stdout\fP et \fI/dev/stderr\fP 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 \fBNOMS DE FICHIERS PEU COURANTS\fP pour obtenir des informations sur la gestion des caractères inhabituels dans les noms de fichiers. .IP "\fB\-fprint0\fP \fIfichier\fP" Vrai\ ; semblable à \fB\-print0\fP, mais écrire dans le \fIfichier\fP comme le fait \fB\-fprint\fP. Le fichier de sortie est toujours créé, même si le prédicat n'est jamais vérifié. Consultez la section \fBNOMS DE FICHIERS PEU COURANTS\fP pour obtenir des informations sur la gestion des caractères inhabituels dans les noms de fichiers. .IP "\fB\-fprintf\fP \fIfichier\fP \fIformat\fP" Vrai\ ; semblable à \fB\-printf\fP, mais écrire dans le \fIfichier\fP comme le fait \fB\-fprint\fP. Le fichier de sortie est toujours créé, même si le prédicat n'est jamais vérifié. Consultez la section \fBNOMS DE FICHIERS PEU COURANTS\fP pour obtenir des informations sur la gestion des caractères inhabituels dans les noms de fichiers. .IP \fB\-ls\fP Vrai, afficher le nom du fichier en cours dans le format \fBls\ \-dils\fP sur la sortie standard. La taille est calculée en blocs de 1\ Ko, à moins que la variable d'environnement \fBPOSIXLY_CORRECT\fP ne soit positionnée, auquel cas la taille est calculée en blocs de 512\ octets. Consultez la section \fBNOMS DE FICHIERS PEU COURANTS\fP pour obtenir des informations sur la gestion des caractères inhabituels dans les noms de fichier. .IP "\fB\-ok\fP \fIcommande\fP \fB;\fP" Comme \fB\-exec\fP, 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 \fI/dev/null\fP. Cette action ne peut être indiquée en même temps que l'option \fB\-files0\-from\fP. .IP 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 \fBPOSIXLY_CORRECT\fP est définie et, dans le cas contraire, dans les traductions des messages de \fBfind\fP. Si le système n'a aucune définition appropriée, les propres définitions de \fBfind\fP seront utilisées. Dans tous les cas, l'interprétation de ces expressions rationnelles sera modifiée par les variables d'environnement \fBLC_CTYPE\fP (classe de caractères) et \fBLC_COLLATE\fP (caractères étendus et classes d’équivalence). .IP "\fB\-okdir\fP \fIcommande\fP \fB;\fP" Comme \fB\-execdir\fP, mais interroger d'abord l'utilisateur comme dans le cas de \fB\-ok\fP. Si l'utilisateur n'acquiesce pas, le test renvoie faux. Si la commande est lancée, son entrée standard est redirigée depuis \fI/dev/null\fP. Cette action ne peut être indiquée en même temps que l'option \fB\-files0\-from\fP. .IP \fB\-print\fP Vrai\ ; afficher le nom complet du fichier sur la sortie standard, suivi d'un saut de ligne. Si vous redirigez la sortie standard de \fBfind\fP 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 \fB\-print0\fP plutôt que \fB\-print\fP. Consultez la section \fBNOMS DE FICHIERS PEU COURANTS\fP pour obtenir des informations sur la gestion des caractères inhabituels dans les noms de fichier. .IP \fB\-print0\fP 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 \fB\-print\fP 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 \fBfind\fP. Cette option correspond à l'option \fB\-0\fP de \fBxargs\fP. .IP "\fB\-printf\fP \fIformat\fP" Vrai\ ; afficher le \fIformat\fP sur la sortie standard, en interprétant les séquences d'échappement «\ \e\ » 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 à \fB\-print\fP, \fB\-printf\fP n'ajoute pas de saut de ligne à la fin de la chaîne. Les séquences d'échappement et les directives sont les suivantes\ : .RS .IP \ea Sonnerie. .IP \eb Effacement arrière (Backspace). .IP \ec Arrêter immédiatement l'impression du format et vider le flux de sortie. .IP \ef Saut de page. .IP \en nouvelle ligne .IP \er Retour chariot. .IP \et Tabulation horizontale. .IP \ev Tabulation verticale. .IP \e0 Caractère ASCII NUL. .IP \e\e Un caractère «\ \e\ » littéral. .IP \eNNN Le caractère ASCII dont le code est NNN (en octal). .PP Un «\ \e\ » suivi de n'importe quel autre caractère est traité comme un caractère ordinaire\ ; ils sont donc affichés tous les deux. .IP %% Un caractère pourcentage littéral (%). .IP %a Date du dernier accès au fichier, dans le format renvoyé par la fonction\ C \fBctime\fP(3). .IP %A\fIk\fP Date du dernier accès au fichier, dans le format spécifié par \fIk\fP, qui doit être soit un «\ @\ », soit une directive pour la fonction\ C \fBstrftime\fP(3). Les valeurs possibles de \fIk\fP sont indiquées ci\-dessous. Veuillez vous reporter à la documentation de \fBstrftime\fP(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 \fBstrftime\fP(3) existantes. .RS .IP @ Secondes écoulées depuis le 1er janvier 1970 à 00\ h\ 00 GMT, avec une partie décimale. .PP Champs horaires\ : .IP H heure (00..23) .IP I heure (01..12) .IP k Heure (0..23) .IP l Heure (1..12) .IP M minute (00..59) .IP p AM ou PM, avec la désignation locale .IP r Heure au format 12 heures (hh:mm:ss [AP]M) .IP S Seconde (00.00 .. 61.00). Une partie est fractionnée. .IP T Heure au format 24 heures (hh:mm:ss.xxxxxxxxxx) .IP + 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 \fBTZ\fP). Le second champ contient une partie décimale. .IP X Représentation locale de l'heure (H:M:S). Le champ secondes comprend une partie fractionnée. .IP Z Fuseau horaire (par exemple MET) ou rien si le fuseau horaire est indéterminé. .PP Champs de date\ : .IP a Abréviation locale du jour de la semaine (lun..dim) .IP \fIA\fP Nom local entier du jour de la semaine, de longueur variable (lundi..dimanche) .IP b Abréviation locale du mois (jan..déc) .IP B Nom local entier du mois, de longueur variable (janvier..décembre) .IP c Date et heure locale (Sat Nov 04 12:02:33 EST 1989). Le format utilisé est le même que pour \fBctime\fP(3) et, afin de préserver la compatibilité avec ce format, il n'y a pas de partie décimale pour les secondes. .IP d Quantième du mois (01..31) .IP D Date (mm/jj/aa) .IP F date (mm/jj/aaaa) .IP h Identique à \fIb\fP .IP j quantième du jour dans l'année (001..366) .IP m mois (01..12) .IP U Numéro de la semaine dans l'année, les semaines commençant le dimanche (00..53) .IP w Jour de la semaine (0..6) .IP W Numéro de la semaine dans l'année, les semaines commençant le lundi (00..53) .IP x Représentation locale de la date (mm/jj/aa) .IP y deux derniers chiffres de l'année (00..99) .IP Y Année (1970...\&) .RE .IP %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 à \fI%s/512\fP. Il peut aussi être inférieur si le fichier est creux (sparse file). .IP %B\fIk\fP La date de «\ naissance\ » du fichier, c'est\-à\-dire sa date de création, au format spécifié par \fBk\fP 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. .IP %c Date de dernière modification d’état du fichier, dans le format renvoyé par la fonction\ C \fBctime\fP(3). .IP %C\fIk\fP Date de dernière modification du statut du fichier, dans le format spécifié par \fIk\fP, comme pour la directive %A. .IP %d Profondeur du fichier dans l'arborescence des répertoires, \fB0\fP signifiant que le fichier est un paramètre de la ligne de commande. .IP %D Le numéro du périphérique sur lequel le fichier est rangé (la valeur du champ \fIst_dev\fP de \fIstruct\ stat\fP) exprimé selon le système décimal. .IP %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 \fBEXEMPLES\fP pour un exemple. .IP %F Type de système de fichiers sur lequel se trouve le fichier. Cette valeur peut être utilisée pour l'option \fB\-fstype\fP. .IP %g Nom du groupe propriétaire du fichier ou identifiant de groupe numérique si le groupe n'a pas de nom. .IP %G Identifiant de groupe numérique du fichier. .IP %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 \fB/\fP ), %h se développe en une chaîne vide. Voir la section \fBEXEMPLES\fP pour un exemple. .IP %H Point de départ à partir duquel le fichier a été trouvé. .IP %i Numéro d'inode du fichier (selon le système décimal). .IP %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 à \fI%s/1024\fP. Il peut aussi être inférieur si le fichier est creux. .IP %l Destination du lien symbolique (vide si le fichier n'est pas un lien symbolique). .IP %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\ \fB#\fP («\ %#m\ », par exemple). .IP %M Les permissions du fichier (sous forme symbolique, comme dans \fBls\fP). Cette directive n'est disponible que dans les versions de findutils\ 4.2.5 et suivantes. .IP %n Nombre de liens physiques sur le fichier. .IP %p Nom du fichier. .IP %P Nom du fichier, sans le nom du point de départ sous lequel il a été trouvé. .IP %s Taille du fichier en octets. .IP %S Densité du fichier, calculée par la formule \fITAILLEBLOC*nb_bloc/taille_fichier\fP. 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. .IP %t Date de dernière modification du fichier, dans le format renvoyé par la fonction\ C \fBctime\fP(3). .IP %T\fIk\fP Date de dernière modification du fichier, dans le format spécifié par \fIk\fP, comme pour la directive %A. .IP %u Nom du propriétaire du fichier ou identifiant utilisateur numérique si l'utilisateur n'a pas de nom. .IP %U Identifiant utilisateur numérique du propriétaire du fichier. .IP %y Type du fichier (comme dans \fBls \-l\fP), U pour type inconnu (ce qui ne devrait pas arriver). .IP %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. .IP %Z (SELinux seulement) Le contexte de sécurité du fichier. .IP "%{ %[ %(" Réservé pour une utilisation future. .PP 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 \fB#\fP, \fB0\fP et \fB+\fP, à 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 \fBG\fP, \fBU\fP, \fBb\fP, \fBD\fP, \fBk\fP et \fBn\fP. Le drapeau de format «\ \-\ » est géré, et transforme l'alignement des champs (qui sont par défaut alignés à droite) en alignement à gauche. .PP Consultez la section \fBNOMS DE FICHIERS PEU COURANTS\fP pour obtenir des informations sur la gestion des caractères inhabituels dans les noms de fichier. .RE .IP \fB\-prune\fP Vrai\ ; si le fichier est un répertoire, ne pas y descendre. Si \fB\-depth\fP est donné, alors \fB\-prune\fP est sans effet. Parce que \fB\-delete\fP implique \fB\-depth\fP, vous ne pouvez pas utiliser utilement à la fois \fB\-prune\fP et \fB\-delete\fP. Par exemple, pour sauter le répertoire \fIsrc/emacs\fP et tous les fichiers et répertoires en dessous, et afficher les noms des autres fichiers trouvés, faites quelque chose comme ceci\ : .in +4m .nf find . \-path ./src/emacs \-prune \-o \-print .fi .in .IP \fB\-quit\fP Quitter immédiatement (avec le code de retour zéro s'il n'y a eu aucune erreur). C'est différent de \fB\-prune\fP, car \fB\-prune\fP ne s'applique qu'au contenu des répertoires coupés, tandis que \fB\-quit\fP arrête simplement \fBfind\fP immédiatement. Aucune exécution de processus enfant ne sera poursuivie. Toute ligne de commande construite par \fB\-exec\ ...\ +\fP ou \fB\-execdir\ ...\ +\fP sera appelée avant que le programme ne quitte. Après \fB\-quit\fP, plus aucun fichier indiqué sur la ligne de commande ne sera traité. Par exemple, «\ \fBfind\ \fP\fI/tmp/toto\fP\fB\ \fP\fI/tmp/machin\fP\fB\ \-print\ \-quit\fP\ » n'affichera que «\ /tmp/toto\ ». .br Une utilisation classique de \fB\-quit\fP 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\ : .in +4m .nf find / \-name needle \-print \-quit .fi .in .SS OPÉRATEURS Dans l'ordre de priorité décroissante\ : .IP "( \fIexpr\fP )" 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 «\ \e(...\e)\ » au lieu de «\ (...)\ ». .IP "\fB!\fP \fIexpr\fP" Vrai si \fIexpr\fP est faux. Ce caractère doit habituellement être protégé pour éviter d'être interprété par le shell. .IP "\fB\-not\fP \fIexpr\fP" Identique à \fB!\fP\ \fIexpr\fP, mais non conforme à la norme POSIX. .IP "\fIexpr1 expr2\fP" Deux expressions sur la même ligne sont prises pour être jointes par un \fB\-a\fP impliqué\ ; \fIexpr2\fP n'est pas évalué si \fIexpr1\fP est faux. .IP "\fIexpr1\fP \fB\-a\fP \fIexpr2\fP" Identique à \fIexpr1 expr2\fP. .IP "\fIexpr1\fP \fB\-and\fP \fIexpr2\fP" Identique à \fIexpr1 expr2\fP, mais non conforme à la norme POSIX. .IP "\fIexpr1\fP \fB\-o\fP \fIexpr2\fP" OU\ ; \fIexpr2\fP n'est pas évaluée si \fIexpr1\fP est vraie. .IP "\fIexpr1\fP \fB\-or\fP \fIexpr2\fP" Identique à \fIexpr1\fP \fB\-o\fP \fIexpr2\fP, mais non conforme à la norme POSIX. .IP "\fIexpr1\fP \fB,\fP \fIexpr2\fP" Lister\ ; \fIexpr1\fP et \fIexpr2\fP sont toujours évaluées. La valeur de \fIexpr1\fP est annulée, la valeur de la liste est la valeur de \fIexpr2\fP. 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 \fB\-fprintf\fP peut être utilisée pour récupérer une liste d'éléments variés pour les ranger dans différents fichiers en sortie. .P Veuillez remarquer le \fB\-a\fP, 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 \fB\-o\fP. Cela signifie que \fBfind\ .\ \-name\ fichier1\ \-o\ \-name\ fichier2\ \-print\fP n'affichera jamais \fIfichier1\fP. . .SH "NOMS DE FICHIERS PEU COURANTS" Beaucoup d'actions de \fBfind\fP 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 «\ \e0\ » 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. .IP "\fB\-print0\fP, \fB\-fprint0\fP" Afficher toujours exactement le nom de fichier non modifié, même si la sortie est un terminal. .IP "\fB\-ls\fP, \fB\-fls\fP" 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 («\ \ef\ »,«\ \e"\ », 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 \fB\-ls\fP et \fB\-fls\fP, il s'agit des caractères dont le code octal est compris entre 041 et 0176) sont affichés en l'état. .IP "\fB\-printf\fP, \fB\-fprintf\fP" 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 \fBls\fP du GNU. Il ne s'agit pas du même mécanisme de protection que celui utilisé pour \fB\-ls\fP et \fB\-fls\fP. Si vous pouvez choisir le format à utiliser pour la sortie de \fBfind\fP, sachez qu'il vaut mieux utiliser «\ \e0\ » 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 \fBLC_CTYPE\fP permet de définir la liste des caractères qui doivent être protégés. .IP "\fB\-print\fP, \fB\-fprint\fP" Les guillemets sont gérés à la manière de \fB\-printf\fP et \fB\-fprintf\fP. Si vous utilisez \fBfind\fP dans un script ou dans un cas de figure particulier dans lesquels les fichiers correspondants peuvent avoir des noms arbitraires, l'utilisation de \fB\-print0\fP devrait être préférée à \fB\-print\fP. .P Les actions \fB\-ok\fP et \fB\-okdir\fP affichent le nom du fichier traité tel qu'il est. Cela pourrait changer dans une version ultérieure. . .SH "CONFORMITÉ AUX STANDARDS" Vous devriez définir la variable d'environnement \fBPOSIXLY_CORRECT\fP 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)\ : .IP \fB\-H\fP Cette option est gérée. .IP \fB\-L\fP Cette option est gérée. .IP \fB\-name\fP Cette option est gérée, mais la conformité à POSIX dépend de la conformité POSIX de la fonction \fBfnmatch\fP(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. .IP \fB\-type\fP Gérée. POSIX stipule «\ b\ », «\ c\ », «\ d\ », «\ l\ », «\ p\ », «\ f\ » et «\ s\ ». GNU \fBfind\fP gère aussi «\ D\ », représentant un Door, pour les systèmes d'exploitation qui le fournissent. En outre, GNU \fBfind\fP permet de spécifier plusieurs types à la fois dans une liste séparée par des virgules. .IP \fB\-ok\fP 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 \fBLC_MESSAGES\fP. Lorsque la variable d'environnement \fBPOSIXLY_CORRECT\fP 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 \fBnl_langinfo\fP(3) du système, et notamment YESEXPR et NOEXPR. Lorsque \fBPOSIXLY_CORRECT\fP n'est pas défini, ces schémas sont extraits du propre catalogue de messages de \fBfind\fP. .IP \fB\-newer\fP 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). .IP \fB\-perm\fP Gérée. Si la variable d'environnement \fBPOSIXLY_CORRECT\fP 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é. .IP "Autres primaires" Les prédicats \fB\-atime\fP, \fB\-ctime\fP, \fB\-depth\fP, \fB\-group\fP, \fB\-links\fP, \fB\-mtime\fP, \fB\-nogroup\fP, \fB\-nouser\fP, \fB\-perm\fP, \fB\-print\fP, \fB\-prune\fP, \fB\-size\fP, \fB\-user\fP et \fB\-xdev\fP sont tous gérés. .P Le standard POSIX définit les parenthèses «\ (\ », «\ )\ », la négation «\ !\ » et les opérateurs logiques AND/OR, \fB\-a\fP et \fB\-o\fP. .P 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 \fBfind\fP. .P Le standard POSIX impose que \fBfind\fP détecte les boucles. .IP L'utilitaire \fBfind\fP doit détecter les boucles infinies, telles que le retour dans un répertoire déjà visité, alors qu'on revient du dernier fichier rencontré. Quand il détecte une boucle infinie, \fBfind\fP doit afficher un message de diagnostic sur la sortie d'erreur et essayer de revenir à sa position d'origine ou s'arrêter. .P La commande \fBfind\fP du GNU est conforme à cette exigence. Le décompte des liens dans un répertoire qui contient des liens en dur vers des répertoires parent sera souvent inférieur à celui attendu. Cela peut être dû au fait que GNU \fBfind\fP optimise l'accès en évitant de parcourir un sous\-répertoire qui s'avère être un lien vers un répertoire parent. Bien que \fBfind\fP 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 \fB\-noleaf\fP, 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 \fB\-L\fP ou \fB\-follow\fP sont actives, alors un message d'avertissement sera émis quand \fBfind\fP rencontrera une boucle de liens symboliques. Comme pour les boucles contenant des liens en dur, l'optimisation de parcours des feuilles (NDT\ : leaf) signifie souvent que \fBfind\fP sait qu'il n'a pas à appliquer \fBstat\fP() ou \fBchdir\fP() sur le lien symbolique et donc que ce diagnostic est souvent inutile. .P L'option \fB\-d\fP 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 \fB\-depth\fP conforme à POSIX. .P Le positionnement de la variable d'environnement \fBPOSIXLY_CORRECT\fP ne modifie pas le comportement des tests \fB\-regex\fP ou \fB\-iregex\fP parce que ces tests ne sont pas définis dans le standard POSIX. . .SH "VARIABLES D'ENVIRONNEMENT" .IP LANG Fournit une valeur par défaut pour les variables de localisation qui ne sont pas définies ou nulles. .IP LC_ALL Si elle contient une chaîne de caractères non vide, remplace les valeurs de toutes les autres variables de localisation. .IP LC_COLLATE Le standard POSIX exige que cette variable modifie le comportement de la recherche de motifs à l’œuvre dans l'option \fB\-name\fP. Le GNU \fBfind\fP utilise la fonction \fBfnmatch\fP(3) de la bibliothèque, et donc la gestion du \fBLC_COLLATE\fP dépend de la bibliothèque présente sur votre système. Cette variable affecte également l'interprétation de la réponse à \fB\-ok\fP\ ; alors que la variable \fBLC_MESSAGES\fP sélectionne le motif effectivement utilisé pour interpréter la réponse à \fB\-ok\fP, l'interprétation des expressions entre crochets dans le motif sera affectée par \fBLC_COLLATE\fP. .IP LC_CTYPE Cette variable contrôle le traitement des classes de caractères utilisées dans les expressions rationnelles ainsi que dans le test \fB\-name\fP, si la fonction \fBfnmatch\fP(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 \fB\-ok\fP. La variable d'environnement \fBLC_CTYPE\fP modifie aussi la liste des caractères dit non imprimables lors de l'affichage des noms de fichiers. Consultez la section \fBNOMS DE FICHIERS PEU COURANTS\fP. .IP LC_MESSAGES Définit la locale à utiliser pour les messages internationalisés. Lorsque la variable d'environnement \fBPOSIXLY_CORRECT\fP est définie, cela détermine aussi l'interprétation des réponses fournies aux questions posées par l'action \fB\-ok\fP. .IP NLSPATH Détermine l'endroit où sont rangés les catalogues de messages localisés. .IP PATH Détermine les répertoires dans lesquels \fBfind\fP cherchera les exécutables invoqués par \fB\-exec\fP, \fB\-execdir\fP, \fB\-ok\fP et \fB\-okdir\fP. .IP POSIXLY_CORRECT Détermine la taille des blocs utilisés par \fB\-ls\fP et \fB\-fls\fP. 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. .IP Définir cette variable désactive aussi par défaut les messages d'avertissement (c'est\-à\-dire entraîne \fB\-nowarn\fP), puisque POSIX impose que, sauf dans le cas de l'affichage de \fB\-ok\fP, 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. .IP Lorsque \fBPOSIXLY_CORRECT\fP n'est pas défini, \fB\-perm\fP\ \fI+zzz\fP est géré de la même façon que \fB\-perm\fP\ \fI/zzz\fP, lorsque \fI+zzz\fP n'est pas un mode symbolique valable. Lorsque \fBPOSIXLY_CORRECT\fP est défini, une telle demande est considérée comme une erreur. .IP Lorsque \fBPOSIXLY_CORRECT\fP est défini, la réponse aux questions posées par l'action \fB\-ok\fP est analysée selon le catalogue des messages du système, et non selon les propres messages du catalogue de \fBfind\fP. .IP TZ Modifie le fuseau horaire utilisé dans le format de certaines directives liées au temps dans \fB\-printf\fP et \fB\-fprintf\fP. . .SH EXEMPLES .\" A bulleted \[bu] list of examples. .SS "Approche simple de «\ find|xargs\ »" .IP \- Rechercher les fichiers nommés \fIcore\fP dans le répertoire \fI/tmp\fP ou dans ses sous\-répertoires, puis les effacer. .nf \& .in +4m \fB$ find /tmp \-name core \-type f \-print | xargs /bin/rm \-f\fP .in \& .fi 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. . .SS "Approche plus sûre de «\ find \-print0 | xargs \-0\ »" .IP \- Chercher les fichiers qui s'appellent \fIcore\fP dans le répertoire \fI/tmp\fP 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. .nf \& .in +4m \fB$ find /tmp \-name core \-type f \-print0 | xargs \-0 /bin/rm \-f\fP .in \& .fi Le test \fB\-name\fP est effectué avant celui \fB\-type\fP afin d'éviter un appel \fBstat\fP(2) sur tous les fichiers. .PP Remarquez qu'il y a toujours un conflit entre le moment où \fBfind\fP explore la hiérarchie et affiche les noms de fichiers trouvés et celui où le processus exécuté par \fBxargs\fP agit sur le fichier. . .SS "Traitement de points de départ arbitraires" .IP \- Étant donné qu'un autre programme \fIprogramme\fP 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\ : .nf \& .in +4m \fB$ proggy | find \-files0\-from \- \-maxdepth 0 \-type f \-empty\fP .in \& .fi L'utilisation de \fB\-files0\-from\ \-\fP signifie lire les noms des points de départ à partir de l'\fIentrée standard\fP, c'est\-à\-dire par exemple d'un tube, et \fB\-maxdepth\ 0\fP 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). . .SS "Exécuter une commande pour chaque fichier" .IP \- Exécuter \fIfichier\fP sur chaque fichier du répertoire actuel ou de ses sous\-répertoires. .nf \& .in +4m \fB$ find . \-type f \-exec fichier \(aq{}\(aq \e;\fP .in \& .fi 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. .PP Dans de nombreux cas, on pourrait préférer la syntaxe \fB`\-exec\ \&...\&\ +`\fP, voire même \fB`\-execdir\ \&...\&\ +`\fP, pour des raisons de performance et de sécurité. . .SS "Explorer une fois le système de fichiers \- pour deux actions différentes" .IP \- Parcourir le système de fichiers en une seule passe, stockant les fichiers et répertoires en setuid dans \fI/root/suid.txt\fP et les gros fichiers dans \fI/root/grand.txt\fP. .nf \& .in +4m \fB$ find / \e\fP .in +4m \fB\e( \-perm \-4000 \-fprintf /root/suid.txt \(aq%#m %u %p\en\(aq \e) , \e\fP .br \fB\e( \-size +100M \-fprintf /root/grand.txt \(aq%\-10s %p\en\(aq \e)\fP .in -4m .in -4m \& .fi Cet exemple utilise le caractère de suite de ligne \(aq\e\(aq sur les deux premières lignes pour demander à l'interpréteur de continuer à lire la commande sur la ligne suivante. . .SS "Rechercher des fichiers par leur âge" .IP \- Rechercher les fichiers dans votre dossier personnel qui ont été modifiés pendant les dernières vingt\-quatre heures. .nf \& .in +4m \fB$ find $HOME \-mtime 0\fP .in \& .fi 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 à \fB\-mtime\fP\ \fB0\fP, un fichier doit avoir une antériorité de modification inférieure à 24\ heures. . .SS "Rechercher les fichiers par leurs permissions" .IP \- Rechercher les fichiers qui offrent le droit d'exécution, mais qui ne sont pas lisibles. .nf \& .in +4m \fB$ find /sbin /usr/sbin \-executable \e! \-readable \-print\fP .in \& .fi . .IP \- 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. .nf \& .in +4m \fB$ find . \-perm 664\fP .in \& .fi 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. . .IP \- 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). .nf \& .in +4m \fB$ find . \-perm \-664\fP .in \& .fi Cela trouvera un fichier dont le mode est, par exemple, \fI0777\fP. . .IP \- Rechercher les fichiers qui offrent le droit d'écriture à quelqu'un (son propriétaire ou son groupe, ou bien n'importe qui). .nf \& .in +4m \fB$ find . \-perm /222\fP .in \& .fi . .IP \- Rechercher les fichiers qui offrent le droit d'écriture à leur propriétaire ou à leur groupe. .nf \& .in +4m \fB$ find . \-perm /220\fP \fB$ find . \-perm /u+w,g+w\fP \fB$ find . \-perm /u=w,g=w\fP .in \& .fi 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. . .IP \- Rechercher les fichiers qui offrent le droit d'écriture à leur propriétaire et à leur groupe. .nf \& .in +4m \fB$ find . \-perm \-220\fP \fB$ find . \-perm \-g+w,u+w\fP .in \& .fi Ces deux commandes font la même chose. . .IP \- Une recherche plus élaborée à partir des permissions. .nf \& .in +4m \fB$ find . \-perm \-444 \-perm /222 \e! \-perm /111\fP \fB$ find . \-perm \-a+r \-perm /a+w \e! \-perm /a+x\fP .in \& .fi Ces commandes recherchent toutes les deux les fichiers qui sont lisibles par tous (\fBperm\ \-444\fP ou \fB\-perm\ \-a+r\fP), ont au moins un des bits d'écriture actif (\fB\-perm\ /222\fP ou \fB\-perm\ /a+w\fP), mais qui ne sont exécutables par personne (respectivement \fB!\ \-perm\ /111\fP et \fB!\ \-perm\ /a+x\fP). . .SS "Découper – omettre des fichiers et des sous\-répertoires" .IP \- Copier le contenu de \fIrépertoire\-source\fP dans \fIrépertoire\-cible\fP, en omettant les fichiers ou les répertoires nommés \fI.snapshot\fP (et tout ce qu'ils contiennent). Cela omet aussi les fichiers ou les répertoires dont le nom se termine par «\ \(ti\ », mais pas les autres contenus. .nf \& .in +4m \fB$ cd /répertoire\-source\fP \fB$ find . \-name .snapshot \-prune \-o \e( \e! \-name \(aq*~\(aq \-print0 \e) \e\fP .br .in +4m \fB| cpio \-pmd0 /dest\-dir\fP .in -4m .in -4m \& .fi La structure \fB\-prune\ \-o\ \e(\ \&...\&\ \-print0\ \e)\fP est très connue. L'idée ici, c'est que l'expression avant \fB\-prune\fP indique les fichiers à couper. Toutefois, l'action \fB\-prune\fP renvoie vrai, donc le \fB\-o\fP 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 \fB\-o\fP est entre parenthèses pour des raisons de clarté uniquement. L'accent est mis ici sur le fait que l'action \fB\-print0\fP ne s'exécute que pour les items qui n'ont pas été coupés par \fB\-prune\fP. Le «\ et \ » implicite entre les conditions de tests est plus prioritaire que le \fB\-o\fP, mais les parenthèses aident à comprendre ce qu'il se passe ici. . .IP \- É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\ : .nf \& .in +4m \fB$ find repo/ \e\fP .in +4m \fB\e( \-exec test \-d \(aq{}/.svn\(aq \e; \e\fP \fB\-or \-exec test \-d \(aq{}/.git\(aq \e; \e\fP \fB\-or \-exec test \-d \(aq{}/CVS\(aq \e; \e\fP \fB\e) \-print \-prune\fP .in -4m .in -4m \& .fi Exemple de sortie\ : .nf \& .in +4m \fBrepo/project1/CVS\fP \fBrepo/gnu/project2/.svn\fP \fBrepo/gnu/project3/.svn\fP \fBrepo/gnu/project3/src/.svn\fP \fBrepo/project4/.git\fP .in \& .fi Dans cet exemple, \fB\-prune\fP évite l'inutile inspection des répertoires qui ont déjà été découverts (ne cherche pas par exemple dans \fIproject3/src\fP puisqu'il a déjà été trouvé dans \fIproject3/.svn\fP) tout en s'assurant que les répertoires frères (\fIproject2\fP et \fIproject3\fP) le sont. . .SS "Autres exemples utiles" .IP \- Rechercher plusieurs types de fichiers. .nf \& .in +4m \fB$ find /tmp \-type f,d,l\fP .in \& .fi Rechercher des fichiers, des répertoires et des liens symboliques dans le répertoire \fI/tmp\fP 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\ : .nf \& .in +4m \fB$ find /tmp \e( \-type f \-o \-type d \-o \-type l \e)\fP .in \& .fi . .IP \- Rechercher les fichiers du nom particulier \fIneedle\fP et arrêter immédiatement dès qu'on trouve le premier. .nf \& .in +4m \fB$ find / \-name needle \-print \-quit\fP .in \& .fi . .IP \- Démonstration de l'interprétation des directives de format \fB%f\fP et \fB%h\fP de l'action \fB\-printf\fP dans certains cas de niche. Voici un exemple comprenant une sortie. .nf \& .in +4m \fB$ find . .. / /tmp /tmp/TRACE compile compile/64/tests/find \-maxdepth 0 \-printf '[%h][%f]\en'\fP \fB[.][.]\fP \fB[.][..]\fP \fB[][/]\fP \fB[][tmp]\fP \fB[/tmp][TRACE]\fP \fB[.][compile]\fP \fB[compile/64/tests][find]\fP .in \& .fi . .SH "CODE DE RETOUR" \fBfind\fP s'arrête en renvoyant la valeur de retour \fB0\fP si tous les fichiers ont été traités avec succès, ou en renvoyant une valeur supérieure à \fB0\fP 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 \fBfind\fP. Quand une erreur se produit, \fBfind\fP 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 \fB\-exec\ \&...\&\ {}\ +\fP ou \fB\-execdir\ \&...\&\ {}\ +\fP ne se fassent pas. . .SH HISTORIQUE À partir de findutils\-4.2.2, les métacaractères de l'interpréteur («\ *\ », «\ ?\ » ou «\ []\ » par exemple) utilisés dans les motifs des noms de fichier trouveront les fichiers commençant par «\ .\ » parce que l'interprétation 126 d'IEEE POSIX l'impose. .P À partir de findutils\-4.3.3, \fB\-perm\ /000\fP explore maintenant tous les fichiers plutôt qu'aucun. .P La gestion des nanosecondes dans les horodatages a été implémentée dans findutils\-4.3.3. .P L'action \fB\-delete\fP force \fBfind\fP à envoyer un statut de sortie non nul en cas d'échec, à partir de findutils\-4.3.11. Toutefois, \fBfind\fP ne s'interrompra pas immédiatement. Dans les versions précédentes, l’état de sortie de \fBfind\fP n'était pas modifié par l'échec de \fB\-delete\fP. .TS l l l . Fonctionnalités Ajoutées Se passe aussi dans \-files0\-from 4.9.0 \fB\-newerXY\fP 4.3.3 BSD \-D 4.3.1 \-O 4.3.1 \fB\-readable\fP 4.3.0 \fB\-writable\fP 4.3.0 \fB\-executable\fP 4.3.0 \fB\-regextype\fP 4.2.24 \fB\-exec ... +\fP 4.2.12 POSIX \fB\-execdir\fP 4.2.12 BSD \fB\-okdir\fP 4.2.12 \fB\-samefile\fP 4.2.11 \-H 4.2.5 POSIX \-L 4.2.5 POSIX \-P 4.2.5 BSD \fB\-delete\fP 4.2.3 \fB\-quit\fP 4.2.3 \-d 4.2.3 BSD \fB\-wholename\fP 4.2.0 \fB\-iwholename\fP 4.2.0 \fB\-ignore_readdir_race\fP 4.2.0 \fB\-fls\fP 4.0 \fB\-ilname\fP 3.8 \fB\-iname\fP 3.8 \fB\-ipath\fP 3.8 \fB\-iregex\fP 3.8 .TE .P La syntaxe \fB\-perm\ +MODE\fP a été supprimée dans findutils\-4.5.12, pour \fB\-perm\fP\ \fB//MODE\fP. La syntaxe \fB+MODE\fP était obsolète depuis findutils\-4.2.21 qui a été publié en\ 2005. . .SH "FAUX BOGUES" .SS "Surprises avec la précédence d'un opérateur" La commande \fBfind . \-name fichier1 \-o \-name fichier2 \-print\fP n'affichera jamais \fIfichier1\fP, car elle revient en fait à \fBfind\ .\ \-name\ fichier1\ \-o \e(\ \-name\ fichier2\ \-a\ \-print\ \e)\fP. Rappelez\-vous que la précédence de \fB\-a\fP est supérieure à celle de \fB\-o\fP et quand aucun opérateur n'est spécifié entre les tests, \fB\-a\fP est présumé. .SS "Message d’erreur \(lqpaths must precede expression\(rq" .nf \fB$ find . \-name *.c \-print\fP find: paths must precede expression find: possible unquoted pattern after predicate `\-name'? .fi .P Cela arrive quand l'interpréteur pourrait développer le motif \fI*.c\fP à 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 \fBfind\fP devient\ : .nf . \fBfind . \-name frcode.c locate.c word_io.c \-print\fP . .fi Cette commande ne va bien entendu pas fonctionner, car le prédicat \fB\-name\fP 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 à \fBfind\fP 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\ : .nf \fB$ find . \-name \(aq*.c\(aq \-print\fP \fB$ find . \-name \e*.c \-print\fP .fi . .SH BOGUES Des problèmes de sécurité se posent, inhérents au comportement de \fBfind\fP tel que défini par le standard POSIX, et qui ne peuvent donc être résolus. Par exemple, l'action \fB\-exec\fP est dangereuse par nature et l'utilisation de \fB\-execdir\fP est préférable. . .P La variable d'environnement LC_COLLATE n'a aucun effet sur l'action \fB\-ok\fP. . .SH "SIGNALER DES BOGUES" Aide en ligne de GNU coreutils\ : .br Signaler toute erreur de traduction à .PP Signaler toute autre erreur au moyen du système de suivi de bogues GNU Savannah\ : .RS .RE Les sujets généraux concernant le paquet GNU findutils sont discutés sur la liste de diffusion \fIbug\-findutils\fP\ : .RS .RE . .SH COPYRIGHT Copyright \(co 1990\-2022 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 ou supérieure . .br 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. . .SH "VOIR AUSSI" \fBchmod\fP(1), \fBlocate\fP(1), \fBls\fP(1), \fBupdatedb\fP(1), \fBxargs\fP(1), \fBlstat\fP(2), \fBstat\fP(2), \fBctime\fP(3) \fBfnmatch\fP(3), \fBprintf\fP(3), \fBstrftime\fP(3), \fBlocatedb\fP(5), \fBregex\fP(7) .PP Documentation complète\ : .br aussi disponible localement à l’aide de\ : \fBinfo find\fP .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Florentin Duneau , Jean-Luc Coulon (f5ibh) , Sylvain Cherrier , Nicolas François , Jean-Philippe MENGUAL et Jean-Pierre Giraud . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .