Aller au contenu principal
Kill -9 Club
Se connecter

find

FichiersPaquet : findutils

Parcourt une arborescence et sélectionne des fichiers sur leurs propriétés : nom, taille, date, propriétaire, permissions. Chaque test est une option, et -exec ou -delete agit sur ce qui reste ; tester sans action d'abord.

Ce que font ses options dans les leçons

Tiré du même glossaire que les leçons affichent sous leurs commandes ; les deux ne peuvent pas se contredire.

find -type
Restreint au type indiqué : f fichier ordinaire, d répertoire, l lien symbolique.
find -name
Filtre sur le nom du fichier, avec un motif du shell (*.log). À mettre entre guillemets pour que le shell ne le développe pas lui-même.
find -perm
Filtre sur les bits de permission. -perm -4000 trouve les binaires *setuid*, c'est-à-dire ceux qui s'exécutent avec les droits de leur propriétaire.
find -user
Filtre sur le propriétaire du fichier.
find -xdev
Ne descend pas dans les autres systèmes de fichiers. Sans cela, une recherche depuis / part dans /proc, /sys et les montages réseau.
find -exec
Exécute une commande sur chaque résultat. {} est le chemin trouvé, et \; termine la commande.
find -print
Affiche le chemin trouvé. C'est le comportement par défaut ; on l'écrit quand d'autres actions sont combinées.
find -print0
Sépare les résultats par un octet nul au lieu d'un retour à la ligne, seul caractère qu'un nom de fichier ne peut pas contenir. Avec xargs -0, c'est ce qui fait tenir un nom contenant une espace.
find -printf
Choisit le format affiché plutôt que le seul chemin. -printf '%T@ %p\n' met la date en tête, ce qui permet de trier par ancienneté.
find -mtime
Filtre sur la date de dernière modification, en jours. -mtime +30 : modifié il y a plus de 30 jours ; -mtime -2 : moins de 2 jours.
find -delete
Supprime les fichiers trouvés. À n'ajouter qu'après avoir lancé la même recherche avec -print et lu la liste : la commande ne demande aucune confirmation.
find -iname
Comme -name, mais sans tenir compte de la casse. -iname "*.LOG" trouve aussi erreurs.log.
find -maxdepth
Limite la descente à ce nombre de niveaux. -maxdepth 1 ne regarde que le répertoire indiqué, sans entrer dans ses sous-répertoires.
find -size
Filtre sur la taille. -size +100M : plus de 100 Mio, soit environ 105 Mo — M compte des mébioctets. Le suffixe compte doublement, car sans lui l'unité est le bloc de 512 octets, pas l'octet.
find -newermt
Modifié après la date indiquée, écrite en clair : -newermt '2026-08-01', ou -newermt '2 hours ago'. Plus lisible que -mtime dès qu'on cherche autour d'un moment précis.
find -newer
Ne garde que les fichiers modifiés après un fichier de référence. -newer /var/lib/dpkg/status donne ce qui a bougé depuis la dernière opération sur les paquets.
find -newerct
Compare la date de *changement d'inode* du fichier à la date indiquée, au lieu de sa date de modification. C'est la variante qui survit à un touch -d, lequel ne règle que la seconde.

Les leçons qui l'enseignent