Rechercher des fichiers avec find

Utilisation : Recherche de fichiers et dossiers en fonction de divers critères (nom, taille, date, permissions, etc.).

Syntaxe de base

find [chemin] [options] [expression]

Tableau récapitulatif

Voici un tableau récapitulatif des options les plus courantes de la commande find en Bash, avec des exemples d’utilisation :

OptionDescriptionExemple
-nameRecherche par nom de fichier (respecte la casse).find /dossier -name « fichier.txt »
-inameRecherche par nom de fichier (insensible à la casse).find /dossier -iname « fichier.txt »
-typeFiltre par type (f pour fichier, d pour dossier).find /dossier -type f (fichiers uniquement)
find /dossier -type d (dossier uniquement)
-sizeFiltre par taille (+ pour plus grand, – pour plus petit).find /dossier -size +10M (fichiers > 10 Mo)
-mtimeFiltre par date de modification (en jours).find /dossier -mtime -7 (modifiés il y a moins de 7 jours)
-atimeFiltre par date d’accès (en jours).find /dossier -atime +30 (accédés il y a plus de 30 jours)
-userFiltre par propriétaire du fichier.find /dossier -user dominique
-groupFiltre par groupe propriétaire.find /dossier -group developers
-permFiltre par permissions (ex: 644, 755).find /dossier -perm 755
-execExécute une commande sur les fichiers trouvés.find /dossier -name « *.tmp » -exec rm {} \; (supprime les fichiers .tmp)
-deleteSupprime les fichiers trouvés (attention, irréversible).find /dossier -name « *.log » -delete
-maxdepthLimite la profondeur de recherche.find /dossier -maxdepth 2 -name « fichier.txt »
-mindepthIgnore les niveaux de profondeur inférieurs.find /dossier -mindepth 2 -name « fichier.txt »
-notInverse la condition (exclut les fichiers correspondant au motif).find /dossier -not -name « *.bak »

Exemples combinés

Pour rechercher tous les fichiers .txt modifiés il y a moins de 3 jours et appartenant à l’utilisateur dominique :

find /home/dominique -type f -name "*.txt" -mtime -3 -user dominique

Rechercher des fichiers modifiés il y a moins de 7 jours :

find . -type f -mtime -7

Rechercher des fichiers de plus de 10 Mo :

find . -type f -size +10M

Exemples lors de l’installation de serveurs

Changer les droits/permissions en utilisant la récursivité seulement pour les dossiers/fichiers en administrateur root.

Exemple pour le dossier de Nextcloud.

d = dossier/répertoire

f = fichier

find nextcloud/ -type d -exec chmod 750 {} \;
find nextcloud/ -type f -exec chmod 640 {} \;

Exemple pour WordPress (depuis le dossier d’installation du site).

. = dossier/répertoire courant

find . -type d -exec chmod 0755 {} \;
find . -type f -exec chmod 0644 {} \;

Pour vérifier le résultat.

ls -ls
Retour en haut