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 :
| Option | Description | Exemple |
|---|---|---|
-name | Recherche par nom de fichier (respecte la casse). | find /dossier -name « fichier.txt » |
-iname | Recherche par nom de fichier (insensible à la casse). | find /dossier -iname « fichier.txt » |
-type | Filtre par type (f pour fichier, d pour dossier). | find /dossier -type f (fichiers uniquement) find /dossier -type d (dossier uniquement) |
-size | Filtre par taille (+ pour plus grand, – pour plus petit). | find /dossier -size +10M (fichiers > 10 Mo) |
-mtime | Filtre par date de modification (en jours). | find /dossier -mtime -7 (modifiés il y a moins de 7 jours) |
-atime | Filtre par date d’accès (en jours). | find /dossier -atime +30 (accédés il y a plus de 30 jours) |
-user | Filtre par propriétaire du fichier. | find /dossier -user dominique |
-group | Filtre par groupe propriétaire. | find /dossier -group developers |
-perm | Filtre par permissions (ex: 644, 755). | find /dossier -perm 755 |
-exec | Exécute une commande sur les fichiers trouvés. | find /dossier -name « *.tmp » -exec rm {} \; (supprime les fichiers .tmp) |
-delete | Supprime les fichiers trouvés (attention, irréversible). | find /dossier -name « *.log » -delete |
-maxdepth | Limite la profondeur de recherche. | find /dossier -maxdepth 2 -name « fichier.txt » |
-mindepth | Ignore les niveaux de profondeur inférieurs. | find /dossier -mindepth 2 -name « fichier.txt » |
-not | Inverse 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