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 :
- type de fichier,
- nom,
- taille,
- permission,
- propriétaires
- date de modifications.
Utilisation basique
Trouver un fichier dans un dossier à partir de son nomfind /dossier/ou/chercher -name "nom du fichier"Dans l'exemple suivant, la commande find cherche les fichiers dont l'extension est mp4 à partir de la home directory de l'utilisateur
find ~ -name "*.mp4"Nous voyons donc qu'il est possible de mette * dans le nom du fichier afin de faire des recherches génériques.
Trouver et lister les gros fichiers, dont la taille est supérieur à 1GO
find . -size +1G -exec ls -lh "{}" \;
Trouver et lister les répertoire vides :
find . -type d -emptyIl 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 :
find . -size +3G -exec rm {} \;
Supprimer des fichiers en fonction de leur date de dernière modification
find /var/log -name "daemon.log*" -mtime +14 -exec rm {} \;
A noter toutefois que cette commande find peut-être particulièrement coûteuse lorsqu'il est nécessaire de scanner toute l'arborescence.
Lister le top 10 des gros fichiers dans un répertoire :
find . -type f -exec ls -s {} \; | sort -n -r | head -10
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.







