find |
Trouve |
---|---|
Linux | Externe |
Syntaxe
find [path...] [expression] |
Paramètres
Nom | Description | ||
---|---|---|---|
-amin n | Ce paramètre permet d'indiquer le dernier accès au fichier avec un nombre de minutes spécifié. | ||
-anewer file | Ce paramètre permet d'indiquer le dernier accès plus récent qu'au fichier spécifié. | ||
-atime n | Ce paramètre permet d'indiquer le dernier accès datant de nombre de jours spécifié (n x 24 heures). | ||
-cmin n | Ce paramètre permet d'indiquer la dernière modification de l'état d'un fichier datant de nombre de minutes spécifié. | ||
-cnewer file | Ce paramètre permet d'indiquer la dernière modification plus récent qu'au fichier spécifié. | ||
-ctime n | Ce paramètre permet d'indiquer la dernière modification datant de nombre de jours spécifié (n x 24 heures). | ||
-daystart | Ce paramètre permet d'indiquer la mesure de temps la mesure de temps du commencement de la journée plutôt que 24 heures. | ||
-depth | Ce paramètre permet de traiter chaque contenu de répertoire avant le répertoire lui-même. | ||
-empty | Ce paramètre permet d'indiquer qu'il faut rechercher les fichiers vides. | ||
-exec commande ; | Ce paramètre permet d'indiquer qu'il faut exécuter la commande lors de la vérification. | ||
-false | Ce paramètre permet d'indiquer qu'il faut afficher les résultats toujours faux. | ||
-fls fichier | Ce paramètre permet d'effectuer un affichage du style de la commande ls dans le fichier spécifié. | ||
-follow | Ce paramètre permet d'effectuer un déréférencement de lien symbolique. Implique -noleaf. | ||
-fprint fichier | Ce paramètre permet d'afficher le nom des fichiers trouvés dans le fichier spécifié. | ||
-fprint0 fichier | Ce paramètre permet d'afficher le nom des fichiers trouvés suivi par un caractère nulle dans le fichier spécifié. | ||
-fprintf fichier format | Ce paramètre permet d'afficher le format spécifié dans le fichier spécifié. | ||
-fstype type | Ce paramètre permet d'effectuer une recherche avec le type de de système de fichiers spécifié. | ||
-gid n | Ce paramètre permet d'effectuer un recherche numérique de l'identificateur de groupe spécifié par n. | ||
-group gname | Ce paramètre permet d'effectuer un recherche du nom de groupe spécifié par gname. Un identificateur de groupe est autorisé. | ||
-help | Ce paramètre permet d'afficher une sommaire syntaxique de l'utilisation de cette commande et quitte immédiatement. | ||
--help | Ce paramètre permet d'afficher une sommaire syntaxique de l'utilisation de cette commande et quitte immédiatement. | ||
-ilname pattern | Ce paramètre permet d'indiquer la base de nom de fichiers correspondant au critère indiqué par pattern sans tenir compte des majuscules ou minuscules. | ||
-iname pattern | Ce paramètre permet d'indiquer la base de nom de fichiers correspondant au critère indiqué par pattern sans effectuer de distinction entre les majuscules ou les minuscules. | ||
-inum n | Ce paramètre permet d'indiquer le fichier avec le numéro d'i-node spécifié. | ||
-ipath pattern | Ce paramètre permet d'indiquer le fichier correspondant spécifié sans distinction entre les minuscules et les majuscules. | ||
-iregex pattern | Ce paramètre permet d'indiquer le fichier avec l'expression régulière correspondant spécifié sans distinction entre les minuscules et les majuscules. | ||
-links n | Ce paramètre permet d'indiquer le nombre de liens spécifié avec un fichier. | ||
-lname pattern | Ce paramètre permet d'indiquer le lien symbolique vers un nom de fichiers correspondant au critère d'expression régulière spécifié. | ||
-ls | Ce paramètre permet d'effectuer un affichage du style de la commande ls vers la sortie standard. | ||
-maxdepth levels | Ce paramètre permet d'indiquer le nombre de niveau descendant de répertoire. | ||
-mindepth levels | Ce paramètre permet d'indiquer qu'il ne faut appliquer de test ou d'action de niveau dans levels. | ||
-mmin n | Ce paramètre permet d'indiquer la dernière modification d'un fichier datant de nombre de minutes spécifié. | ||
-mount | Ce paramètre permet d'indiquer qu'il ne faut descendre dans un autre système de fichiers. | ||
-mtime n | Ce paramètre permet d'indiquer les données de fichiers étant modifié depuis les n x 24 dernières heures. | ||
-name pattern | Ce paramètre permet d'indiquer la base de nom de fichiers correspondant au critère indiqué par pattern. | ||
-newer file | Ce paramètre permet d'indiquer la dernière modification est plus récent que le fichier spécifié. | ||
-noleaf | Ce paramètre permet d'indiquer qu'il ne faut optimiser les répertoires contenant deux sous-répertoires de moins que le compte de liens dur. | ||
-nouser | Ce paramètre permet d'indiquer les fichiers avec un identificateur d'utilisateur (U-ID) n'ayant pas d'utilisateur. | ||
-nogroup | Ce paramètre permet d'indiquer les fichiers avec un identificateur de groupe (G-ID) n'ayant aucun groupe d'utilisateurs. | ||
-ok commande ; | Ce paramètre permet d'exécuter une commande en demandant à réponse à l'utilisateur avant de poursuivre le traitement. | ||
-path pattern | Ce paramètre permet d'indiquer le fichier correspondant spécifié sans distinction. | ||
-perm mode | Ce paramètre permet d'indiquer le fichier avec les permissions spécifiés. Voici ses valeurs octal : | ||
Valeur | Description | ||
0 | Cette valeur permet d'indiquer qu'il n'y aucun droit d'accès de donné. | ||
1 | Cette valeur permet d'indiquer qu'il y a seulement un droit d'exécution. | ||
2 | Cette valeur permet d'indiquer qu'il y a seulement un droit d'écriture. | ||
3 | Cette valeur permet d'indiquer qu'il y a seulement un droit d'exécution et d'écriture. | ||
4 | Cette valeur permet d'indiquer qu'il y a seulement un droit de lecture. | ||
5 | Cette valeur permet d'indiquer qu'il y a seulement un droit d'exécution et de lecture. | ||
6 | Cette valeur permet d'indiquer qu'il y a seulement un droit d'écriture et de lecture. | ||
7 | Cette valeur permet d'indiquer qu'il y a tous les droits: lecture, écriture et exécution. | ||
-perm -mode | Ce paramètre permet d'indiquer le fichier n'ayant pas les permissions spécifiés. | ||
-perm +mode | Ce paramètre permet d'indiquer le fichier avec certaines des permissions spécifiés. | ||
Ce paramètre permet d'afficher le nom des fichiers trouvés sur la sortie standard. | |||
-print0 | Ce paramètre permet d'afficher le nom des fichiers trouvés suivi par un caractère nulle sur la sortie standard. | ||
-printf format | Ce paramètre permet d'afficher le format spécifié sur la sortie standard. Voici les combinaisons les plus communes : | ||
Caractères spéciaux | Description | ||
\a | Ces caractères spéciaux permettent de faire émettre un signal sonore (Bip). | ||
\b | Ces caractères spéciaux permettent d'effectuer un déplacement d'un caractère vers l'arrière (BackSpace). | ||
\c | Ces caractères spéciaux permettent de vider le flux de données et termine immédiatement le format. | ||
\f | Ces caractères spéciaux permettent d'indiquer un saut de page. | ||
\n | Ces caractères spéciaux permettent d'indiquer un saut de ligne. | ||
\r | Ces caractères spéciaux permettent d'indiquer un retour de ligne (retour de chariot). | ||
\t | Ces caractères spéciaux permettent d'indiquer une tabulation horizontal. | ||
\v | Ces caractères spéciaux permettent d'indiquer une tabulation vertical. | ||
\\ | Ces caractères spéciaux permettent d'indiquer une barre oblique inversé. | ||
%% | Ces caractères spéciaux permettent d'indiquer un caractère de pourcentage unique (%). | ||
%a | Ces caractères spéciaux permettent d'indiquer la date du dernier accès à un fichier au format de la fonction ctime du langage de programmation C. | ||
%Avaleur | Ces caractères spéciaux permettent d'indiquer la date du dernier accès à un fichier au format spécifié. Voici les valeurs que supporte le format : | ||
Valeur | Description | ||
H | Cette valeur permet d'indiquer l'heure avec un intervalle entre 00 et 23. | ||
I | Cette valeur permet d'indiquer les heures avec un intervalle entre 01 et 12. | ||
k | Cette valeur permet d'indiquer les heures avec un intervalle entre 0 et 23. | ||
l | Cette valeur permet d'indiquer les heures avec un intervalle entre 1 et 12. | ||
M | Cette valeur permet d'indiquer les minutes avec un intervalle entre 00 et 59. | ||
... | ... | ||
%b | Ces caractères spéciaux permettent d'indiquer la taille du fichier avec unité de mesure en blocs de 512 octets. | ||
%c | Ces caractères spéciaux permettent d'indiquer l'état de la dernière modification d'un fichier au format de la fonction ctime du langage de programmation C. | ||
%Ck | Ces caractères spéciaux permettent d'indiquer l'état de la dernière modification d'un fichier au format spécifié. | ||
%d | Ces caractères spéciaux permettent d'indiquer le niveau de profondeur d'un fichier dans son chemin. | ||
%f | Ces caractères spéciaux permettent d'indiquer le nom de fichier seulement. | ||
%F | Ces caractères spéciaux permettent d'indiquer le type de système de fichier. | ||
%g | Ces caractères spéciaux permettent d'indiquer le nom du groupe d'un fichier. | ||
%G | Ces caractères spéciaux permettent d'indiquer l'identificateur de groupe d'un fichier. | ||
%h | Ces caractères spéciaux permettent d'indiquer le chemin où est situé le fichier. | ||
%H | Ces caractères spéciaux permettent d'indiquer le paramètre de ligne de commande où est situé le fichier. | ||
%i | Ces caractères spéciaux permettent d'indiquer le numéro du i-node du fichier. | ||
%k | Ces caractères spéciaux permettent d'indiquer la taille du fichier avec une unité de mesure en Kilo-Octets. | ||
%l | Ces caractères spéciaux permettent d'indiquer l'emplacement où pointe le lien symbolique. | ||
%m | Ces caractères spéciaux permettent d'indiquer les permissions d'accès à un fichier sur une base numérique en octal. | ||
%n | Ces caractères spéciaux permettent d'indiquer le nombre de lien vers un fichier. | ||
%p | Ces caractères spéciaux permettent d'indiquer le nom complet d'un fichier. | ||
%P | Ces caractères spéciaux permettent d'indiquer le nom d'un fichier avec les paramètres de ligne de commandes. | ||
%s | Ces caractères spéciaux permettent d'indiquer la taille d'un fichier avec une unité de mesure en octets. | ||
%t | Ces caractères spéciaux permettent d'indiquer la date de la dernière modification effectuer sur un fichier au format de la fonction ctime du langage de programmation C. | ||
%Tk | Ces caractères spéciaux permettent d'indiquer la date de la dernière modification effectuer sur un fichier au format spécifié. | ||
%u | Ces caractères spéciaux permettent d'indiquer le nom du propriétaire d'un fichier. | ||
%U | Ces caractères spéciaux permettent d'indiquer l'identificateur du propriétaire d'un fichier (U-ID). | ||
-prune | Ce paramètre permet de pas rechercher dans l'arborescence du répertoire courant. | ||
-regex pattern | Ce paramètre permet d'indiquer le fichier avec l'expression régulière correspondant spécifié. | ||
-size n[bckw] | Ce paramètre permet d'indiquer le fichier avec la taille spécifié. On peut utiliser des lettres pour indiquer une unité de mesure : | ||
Lettre | Description | ||
b | Cette lettre permet d'indiquer des blocs de 512 octets. C'est la valeur par défaut. | ||
c | Cette lettre permet d'indiquer des octets. | ||
k | Cette lettre permet d'indiquer des Kilo-Octets. | ||
w | Cette lettre permet d'indiquer des mots (2 octets). | ||
-true | Ce paramètre permet d'indiquer qu'il faut afficher les résultats toujours vrai. | ||
-type c | Ce paramètre permet d'indiquer qu'il faut que les fichiers correspondent au type spécifié : | ||
Valeur | Description | ||
b | Cette valeur permet d'indiquer un fichier spécial en mode de bloc avec tampon. | ||
c | Cette valeur permet d'indiquer un fichier spécial en mode de bloc sans tampon. | ||
d | Cette valeur permet d'indiquer un répertoire ou dossier. | ||
p | Cette valeur permet d'indiquer un tuyau (FIFO). | ||
f | Cette valeur permet d'indiquer un fichier normal. | ||
l | Cette valeur permet d'indiquer un lien symbolique. | ||
s | Cette valeur permet d'indiquer un socket. | ||
-uid n | Ce paramètre permet d'indiquer les fichiers avec un identificateur d'utilisateur (U-ID) spécifié. | ||
-used n | Ce paramètre permet d'indiquer la dernière modification d'état de fichiers après le nombre de jours spécifiés. | ||
-user utilisateur | Ce paramètre permet d'indiquer les fichiers avec l'utilisateur spécifié. | ||
-version | Ce paramètre permet d'indiquer la version de la commande et quitte immédiatement. | ||
--version | Ce paramètre permet d'indiquer la version de la commande et quitte immédiatement. | ||
-xdev | Ce paramètre permet de ne pas descendre dans un autre système de fichiers. | ||
-xtype c | Ce paramètre permet d'indiquer qu'il faut que les fichiers correspondent au type spécifié pour les liens symboliques : | ||
Valeur | Description | ||
b | Cette valeur permet d'indiquer un fichier spécial en mode de bloc avec tampon. | ||
c | Cette valeur permet d'indiquer un fichier spécial en mode de bloc sans tampon. | ||
d | Cette valeur permet d'indiquer un répertoire ou dossier. | ||
p | Cette valeur permet d'indiquer un tuyau (FIFO). | ||
f | Cette valeur permet d'indiquer un fichier normal. | ||
s | Cette valeur permet d'indiquer un socket. |
Description
Cette commande permet d'effectuer la recherche d'une chaîne de caractères dans des fichiers.
Remarques
- Imbrication de commandes : Grâce au paramètre «-exec», il est possible d'appliquer n'importe quel commande Linux aux résultats des fichiers trouvé par la commande «find». Ainsi, grâce à ce paramètre, on peut supprimer (rm), changer des modes (chmod), changer du contenu (sed) à tous les fichiers répondant aux critères spécifiés. Cette possibilité est très puissance, mais elle est également très dangereuse, il faudra donc faire très attention de bien tester, sans la commande passé en paramètre «-exec», quel retourne bien le contenu souhaité, sous peine d'avoir des mauvaises surprises.
- Mauvaise pratique : Il faut éviter de mettre des astérisques (*) dans le chemin de recherche, car il oblige la commande «find», a construire une liste en mémoire pour chacun des niveaux que vous indiquez. Ainsi, vous aurez potentiellement un «-bash: /usr/bin/find: Argument list too long» comme message d'erreur s'il y a trop de fichiers. Par conséquent, il ne faut pas faire un "/dossier1/dossier2/*/*/" mais plutôt un «/dossier1/dossier2/», surtout si vous n'utilisez pas de paramètre «-maxdepth».
Exemples
Cet exemple permet de voir les fichiers modifié depuis les 3 derniers jours sur un système d'exploitation Linux à partir du répertoire courant :
find . -name "*" -mtime -3 -print |
Voici un exemple de recherche du fichier «iptables» dans les sous-répertoires «/etc» :
find /etc | grep iptables |
On obtiendra un résultat semblable à celui-ci :
/etc/rc.d/rc2.d/S08iptables /etc/rc.d/init.d/iptables /etc/rc.d/rc3.d/S08iptables /etc/rc.d/rc4.d/S08iptables /etc/rc.d/rc5.d/S08iptables /etc/rc.d/rc1.d/K92iptables /etc/rc.d/rc6.d/K92iptables /etc/rc.d/rc0.d/K92iptables /etc/sysconfig/iptables /etc/sysconfig/iptables.old /etc/sysconfig/iptables.save /etc/sysconfig/iptables-config |
Cet exemple permet de rechercher dans tous les fichiers le «iptables» dans le répertoires «/etc» :
find /etc | xargs grep iptables |
L'exemple suivant permet de rechercher le fichier «index.php» dans le dossier courant et récursivement dans tous les sous-dossiers :
find . -name index.php |
L'exemple suivant permet de rechercher tous les fichiers avec des liens symboliques :
find . -type l |
L'exemple suivant permet de rechercher dans le dossier «/www/vhosts/» récursivement le fichier «upload.php» et envoi tous les messages d'erreurs (genre «Permission denied») vers la sortie nulle :
find /www/vhosts/ -name "upload.php" 2>/dev/null |
L'exemple suivant permet de retourner le nombre de fichiers que contient un dossier et ses sous-dossier enfant que contient le dossier courant :
find ./ -type f | wc -l |
L'exemple suivant permet de retourner le nombre de dossier et de sous-dossier enfant que contient le dossier courant :
find ./ -type d | wc -l |
Voir également
Système d'exploitation - Linux - Références de commandes et de programmes - chmod
Système d'exploitation - Linux - Références de commandes et de programmes - cpio
Système d'exploitation - Linux - Références de commandes et de programmes - locate
Système d'exploitation - Linux - Références de commandes et de programmes - ls
Système d'exploitation - Linux - Références de commandes et de programmes - sh
Système d'exploitation - Linux - Références de commandes et de programmes - whereis
Système d'exploitation - Linux - Références de commandes et de programmes - which
Système d'exploitation - Linux - Références de commandes et de programmes - xargs