find - recherche de fichier
L'outil permet de faire des recherches dans le système de fichiers
Lister tous les répertoires et fichiers d'un dossier :
$ find <dossier>
- Sensible à la casse
find <dossier> -name <nom>
- Insensible :
find <dossier> -iname <nom>
Lorsque l'on fait une recherche, on peut utiliser des caractères spéciaux :
- Le filtre de recherche
*.ogg
va sélectionner tous les fichiers OGG. - Le filtre de recherche
*A*
va sélectionner tous les fichiers contenant un A majuscule. - Le filtre de recherche
1?3
va sélectionner tous les fichier nommés 1X3 où X est n'importe quel caractère.
- Rechercher uniquement les fichiers :
find -type f
- Rechercher uniquement les répertoires :
find -type d
- Rechercher les fichiers de plus de 10 Go :
find -size +10G
- Rechercher les fichiers de moins de 10 Mo :
find -size -10M
- Rechercher les fichiers dont la taille est comprise entre 10 et 20 Go :
find -size +10G -size -20G
- Rechercher les fichiers lus dans les 30 derniers jours :
find -atime -30
- Rechercher les fichiers créés aujourd'hui :
find -ctime 0
- Rechercher les fichiers modifiés il y a plus de 90 jours :
find -mtime +90
- Rechercher les fichiers possédés par un utilisateur :
find -user <nom-utilisateur>
- Recherche par UID :
find -uid <uid>
La liste des identifiants d'utilisateurs peut être récupérée en exécutant la commande
id
.On récupère le chemin du fichier entre accolades
{}
. Par exemple, si on veut récupérer les information fournies par ls
: $ find <options...> -exec ls -lh {} \;
Parfois on a pas les droits sur certains dossiers / fichiers. Pour cacher les lignes "permission non accordée", on peut rediriger la sortie d'erreur vers
/dev/null
pour les cacher.$ find <options...> 2> /dev/null
Dernière mise à jour 2yr ago