Article original publié le : 03 janvier 2022 Mise à jour le : |
Find permet de rechercher des fichiers ou répertoires ..
Quelques exemples
- Chercher fichier dans le répertoire courant, sensible a la case
1 |
$ find . -name "nom_de_fichier_complet" |
- Chercher fichier dans le répertoire courant, insensible a la case
1 |
$ find . -iname "nom_de_fichier_complet" |
- Chercher chaine de caractère dans le répertoire courant, insensible a la case
1 |
$ find . -iname "*nom_du_fichier_incomplet*" |
- Compter le nombre de fichiers dans le répertoire /etc
1 |
$ sudo find /etc -type f | wc -l |
- Compter le nombre de répertoires dans le répertoire /etc
1 |
$ sudo find /etc -type d | wc -l |
- Rechercher les 10 plus gros fichiers depuis la racine
1 |
$ sudo find / -type f -exec du -h {} \; | sort -rh | head -10 |
- Spécifier le propriétaire du fichier recherché
1 |
$ sudo find / -user mon_utilisateur -a -iname "*.txt" |
- Recherche multiple pour plusieurs extensions.
1 |
$ sudo find / \( -iname "*.vdi" -o -iname "*.iso" -o -iname "*.vmdk" \) |
- Spécifier une taille, y compris les fichiers a 0
1 |
$ sudo find / -size "+1G" |
1 |
$ sudo find / -size "-100k" |
1 |
$ sudo find / -size "200M" |
1 |
$ sudo find / -type f -size 0 |
- Rechercher et supprimer tous les fichiers a 0 octets dans le répertoire courant
1 |
$ find . -type f -size 0 -exec rm {} \; |
- Rechercher fichier dans le répertoire courant et supprimer en mode verbose
1 |
$ find . -type f -iname "*.txt" | xargs rm -v |
- Rechercher tous les fichiers créés ou modifiés il y a moins de 2 jours (atime : dernière lecture / mtime : dernière modification / ctime : dernière connexion)
1 |
$ find . -mtime -2 |
- Rechercher chaine de caractères créés ou modifiés il y a moins de 2 jours
1 |
$ find . -iname "*nom_du_fichier_incomplet*" -mtime -2 |
- Rechercher tous les fichiers créés ou modifiés il y a plus de 2 jours
1 |
$ find . -mtime +2 |
- Rechercher tous les fichiers créés ou modifiés il y a exactement 2 jours
1 |
$ find . -mtime 2 |
- Rechercher avec la combinaison d’argument – de 2 jours, – de 10mo avec le propriétaire du fichier
1 |
$ find . -type f -iname "*.txt" -mtime -2 -user mon_utilisateur -size -10M |
- Rechercher et lister les fichiers logs entre – de 20 jours et + de 10 jours
1 |
$ sudo find /var/log/ -type f -iname "*" -mtime -20 -mtime +10 -exec ls -l {} \; |
- Rechercher et archiver les fichiers logs entre – de 20 jours et + de 10 jours
1 |
$ sudo find /var/log/ -type f -iname "*" -mtime -20 -mtime +10 -exec tar rvf /tmp/logs.tar {} \; |
- Chercher et archiver tous les fichiers avec l’extension .log
1 |
$ sudo find /var/log/ -iname '*.log' | tar cv --files-from=- | bzip2 > /tmp/fichier_log.tar.bz2 |
- Exclure un repertoire de la recherche dans le repertoire courant
1 |
$ sudo find . -type d -name nom_repertoire_a_exclure -prune -o -name 'mot_a_rechercher' -print |
- Pour l’erreur Argument list too long suite a une recherche qui renvoi un nombre important, rediriger vers un fichier && faire une archive par exemple
1 |
$ find . -name '*mes_fichiers*' > mon_outpout && tar -cvzf archive.tar.gz --files-from mon_outpout |
- Pour rm en masse
1 |
$ find . -name '*mes_fichiers*' | xargs rm -v |
- Rechercher fichiers entre 2 dates
1 |
$ find . -type f -newermt "2013-08-01" ! -newermt "2013-08-31" |