Sous Linux, si vous cherchez un fichier ou un répertoire l'administrateur utilise la commande find.
Cette commande, puissante, permet de chercher des fichiers avec de nombreux critères :
Dans l'exemple suivant, la commande find cherche les fichiers dont l'extension est mp4 à partir de la home directory de l'utilisateur
Nous voyons donc qu'il est possible de mette * dans le nom du fichier afin de faire des recherches génériques.
Il est également possible de combiner les arguments de la commande find pour effectuer une action sur le ou les fichiers trouvés.
Cette opération se fait via la commande -exec, comme nous l'avons vu avec l'exemple sur les fichier dont la taille est supérieur à 1GO.
Aussi, la commande ci-dessous supprime les fichiers dont la taill est supérieure à 3 GO :
A noter toutefois que cette commande find peut-être particulièrement coûteuse lorsqu'il est nécessaire de scanner toute l'arborescence.
Il est possible d'ajouter l'option -xdev. En effet, cette option permet de ne pas franchir les limites du système de fichiers. Bien pratique si vous faites un find sur /.
En effet, si il existe une partition /home par exemple , find n'ira pas dedans avec l'option -xdev mais restera dans le système de fichiers courants.
- type de fichier,
- nom,
- taille,
- permission,
- propriétaires
- date de modifications.
Utilisation basique
Trouver un fichier dans un dossier à partir de son nom1
find /dossier/ou/chercher -name "nom du fichier"
1
find ~ -name "*.mp4"
Trouver et lister les gros fichiers, dont la taille est supérieur à 1GO
1
find . -size +1G -exec ls -lh "{}" \;
Trouver et lister les répertoire vides :
1
find . -type d -empty
1
find . -size +3G -exec rm {} \;
Supprimer des fichiers en fonction de leur date de dernière modification
1
find /var/log -name "daemon.log*" -mtime +14 -exec rm {} \;
Lister le top 10 des gros fichiers dans un répertoire :
1
find . -type f -exec ls -s {} \; | sort -n -r | head -10







