Chercher un nom de fichier ou répertoire dans une arborescence :
- find ./ -name '*le_nom_a_chercher*'
le caractère * est le jocker remplaçant n’importe quel caractère(s) : ici on cherche tous les fichiers ou dossiers contenant la chaîne de caractères le_nom_a_chercher
Limiter la profondeur de l’arborescence de recherche :
- find ./ -maxdepth 2 -name '*le_nom_a_chercher*'
ici on limite à 2 niveaux de l’arborescence la recherche : (le dossier courant ./ et ses sous-dossiers).
Préciser le type d’éléments recherchés :
- find ./ -type f -name '*le_nom_a_chercher*'
- -type f : ne chercher que des fichiers
- -type d : ne chercher que des répertoires
Exclure des répertoires/fichiers de la recherche :
- find . -not -path './cache*'
le paramètre -not -path ’cache*’ permet d’exclure un ensemble de fichiers/répertoires de la recherche (ici tous les dossiers/fichiers dont le nom commence par cache)
Chercher les fichiers modifiés dans les "n" dernières minutes :
- find . -mmin -60
le paramètre -mmin donne le nombre de minutes depuis lequel on veut trouver les fichiers modifiés
Exécuter une commande sur chaque fichier trouvé : option -exec
Par exemple :
- déplacer dans un dossier poubelle tous les fichiers plus vieux que 60 jours trouvé dans le dossier $chemin :
- find $chemin -type f -mtime +60 -exec /bin/mv {} -t /home/poubelle \;
- mettre jojo comme propriétaire des fichiers de toto trouvés dans le dossier $chemin :
- find $chemin -user 'toto' -exec /bin/chown jojo {} \;
Références :
- man page en français de find : https://manpages.ubuntu.com/manpages/xenial/fr/man1/find.1.html
- les options de find expliquées et illustrées d’exemples : https://www.ionos.fr/digitalguide/serveur/configuration/commande-find-sous-linux/