Recherche de fichiers : find

Navigation rapide : Lundi / Mardi / Mercredi / Jeudi / Vendredi

La commande find est orientée recherche de fichier (selon des critères définis) et permet d'effectuer des “actions” en conséquence sur les fichiers vérifiant certains “critères”. La syntaxe de la commande est la suivante :

find <chemin> <criteres> <actions>

Critères de recherche

les critères de recherches sont examinés en séquence. Il est possible de les regrouper avec des opérateurs booléens : -o -a ! et \( \)

Options de la ligne de commande Description
-name <filename> Nom des fichiers correspondent à <filename> (possibilité d'utiliser des caractères joker)
-iname <filename> Nom des fichiers correspondent à <filename>, en ignorant la casse (possibilité d'utiliser des caractères joker)
-type <t> Type de fichier à chercher selon <t> (d pour répertoire, f pour fichier, l pour lien, s pour socket
-user <user> Fichier dont le propriétaire correspond à <user> (nom ou numéro d'utilisateur)
-group <grp> Fichier dont le groupe correspond à <grp> (nom ou numéro de groupe)
-size -<sz><unit> Fichier dont la taille est inférieure à <sz> kilo-octects avec k mis pour <unit> (mettre <unit> à G pour des giga-octects)
-size +<sz><unit> Fichier dont la taille est supérieure à <sz> kilo-octects avec k mis pour <unit> (mettre <unit> à G pour des giga-octects)
-atime +<nbh> Fichier ayant été accédé depuis plus de <nbh> heures
-atime -<nbh> Fichier ayant été accédé depuis moins de <nbh> heures
-mtime +<nbh> Fichier ayant été modifié depuis plus de <nbh> heures
-mtime -<nbh> Fichier ayant été modifié depuis moins de <nbh> heures
-executable Fichier marqué comme exécutable
-depth Le contenu du répertoire avant le répertoire lui même
-mount ne quitte pas le file système de path

Actions

Argument de la ligne de commande Description
-print Affiche le nom des fichiers trouvés (un par ligne)
-delete Supprime le fichier
-exec <cmd> <arg1> … <argN> ; Exécute la commande <cmd> et ses arguments pour chaque fichier trouvé. Si un des arguments vaut {}, find le remplace par le nom du fichier trouvé
-exec <cmd> <arg1> … <argN> {} + Exécute la commande <cmd> avec ses arguments et y ajoute la liste des fichiers trouvés

Exemples

-Trouver les fichiers modifiés il y a moins d'une heure dans le répertoire d'accueil de bob

réponse

1: find /home/bob -type f -mtime -1

-Trouver les liens du répertoire /usr/lib

réponse

1:  find /usr/lib -type l

-Supprimer les sauvegardes emacs ou les fichiers temporaires dans le répertoire src

réponse

1: find src -type f \( -name '*~' -o -name "#*#" \) -delete

-Supprimer les fichiers core en les affichant datant de plus d'une semaine de l'arborescence des utilisateurs

réponse

1: find /home -name "core.[0-9][0-9]*" -atime +7d -exec rm {} \; -print

-Compter les lignes des fichiers sources C d'un répertoire src

réponse

1: find src -type f -name '*.c' -exec wc -l {} \;

-Rechercher les appels à la fonction malloc() dans les sources C d'un répertoire src

réponse

1: find src -name '*.c' -exec grep -Hn 'malloc(' {} \+

-Rechercher dans les poubelles des utilisateurs les fichiers ou répertoires ayant plus d'un mois et les détruire

réponse

1: cd /home ; find  */.Trash/* -depth 0 \( -type f -o -type d \) -mtime +1m -exec rm -r  {} \; -print
shell_find.txt · Last modified: 2012/05/19 19:17 (external edit)
 
Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki