Accueil·Commandes du terminal

find

Fichiers et répertoires

Syntaxe

find [path] -name '[pattern]' -type f

Parcourt une arborescence en testant chaque entrée ; mettez le motif entre guillemets, -name '*.log', sinon le shell l'étend avant find.

Options courantes

OptionSignification
-nameMatch the file name, case sensitive; -iname ignores case
-typeRestrict to f (file), d (directory) or l (symlink)
-sizeFilter by size, as in -size +100M
-mtimeFilter by age in days, as in -mtime +7
-maxdepthLimit how deep to walk; GNU wants it before the tests
-deleteDelete every match, no confirmation
-execRun a command on each hit, ending with \; or +
-print0Separate results with NUL, to pair with xargs -0

Exemples

find . -name '*.log' -mtime +7 -delete

Deletes log files older than a week.

find / -type f -size +1G 2>/dev/null

Finds files over a gigabyte, hiding permission errors.

find . -name '*.jpg' -exec mv {} photos/ +

Moves every JPEG it finds.

Déplacer, supprimer, trouver. Certains ne demandent pas confirmation, et c’est pour ça que -i devient un réflexe.

Comment lire

  • Les crochets [ ] marquent une partie facultative.
  • Les points de suspension … signifient qu’on peut en mettre plusieurs.
  • Les options sont sensibles à la casse : sur certaines commandes, -r et -R ne font pas la même chose.

Questions fréquentes

Q. Que fait find ?

Parcourt une arborescence en testant chaque entrée ; mettez le motif entre guillemets, -name '*.log', sinon le shell l'étend avant find.

Q. Comment l’écrire ?

find [path] -name '[pattern]' -type f — les crochets marquent ce qui est facultatif.

Q. Combien d’options valent la peine ?

Il y en a 8 ici ; la liste complète est dans man find. Cette commande relève de Fichiers et répertoires.

Commandes liées

page man: man find