20 exemples pratiques avec la commande find sous Linux

La commande find sous Linux est une commande très pratique pour chercher des fichiers à partir de la ligne de commande. Il peut être utilisé pour chercher des fichiers en fonction de différents critères de recherche tels que les autorisations, le propriétaire, la date/heure de modification, la taille, etc. Nous allons apprendre à utiliser la commande find avec les différentes options prises en charge.
 
 
La commande find est disponible sur la plupart des distributions linux par défaut, vous n’avez donc pas besoin d’installer de package. La commande find est un outil essentiel à apprendre si vous voulez être super productif sur la ligne de commande sous Linux.
 

1. Trouver des fichiers par son nom dans le répertoire courant

Recherchez tous les fichiers dont le nom « myfile.txt » dans le répertoire courant.

[[email protected] ~]# find . -name myfile.txt

Sortie :

./myfile.txt

 

2. Lister tous les fichiers d’un répertoire et ses sous répertoires

Cette commande liste tous les fichiers du répertoire courant ainsi que les sous-répertoires.

[[email protected] ~]# find

Sortie :

.
./myfile.txt
./dossier
./dossier/home.html
./image.jpg

Les deux commandes suivantes sont les mêmes:

[[email protected] ~]# find .
[[email protected] ~]# find . -print

 

3. Chercher un répertoire ou un chemin spécifique

La commande suivante cherchera des fichiers dans le répertoire home.

[[email protected] ~]# find ./home

Sortie :

./home
./home/myfile.txt
./home/jeux
./home/jeux/spin.exo
./home/cours/linux.pdf
./home/cours/java.pdf

La commande suivante cherche le fichier par son nom dans le répertoire home.

[[email protected] ~]# find ./home -name "spin.exo"

Sortie :

./home/jeux/spin.exo

Nous pouvons aussi utiliser des caractères génériques(wildcards)

[[email protected] ~]# find ./home -name "*.pdf"

Sortie :

./home/cours/linux.pdf
./home/cours/java.pdf

 

ignorer la casse

Il est souvent utile d’ignorer la casse lors de la recherche d’un nom de fichiers. Pour ignorer la casse, utilisez simplement l’option « -iname » au lieu de l’option « -name ».

[[email protected] ~]# find ./home -iname "*.PDF"

Sortie :

./home/cours/linux.pdf
./home/cours/java.pdf

 
 

4. Trouver des répertoires par son nom

Cherchez tous les répertoires dont le nom est Home dans le répertoire racine /.

[[email protected] ~]# find / -type d -name Home

Sortie :

/Home

 

5. Trouver des fichiers cachés

Les fichiers cachés sur Linux commencent par un point. Il est donc facile de mentionner cela dans les critères de recherche et de lister tous les fichiers cachés.

[[email protected] ~]# find ~ -type f -name ".*"

Sortie :

.picture.jpg
/exec/.config

 

6. Chercher dans plusieurs dossier en parallèle
[[email protected] ~]# find ./dossier1 ./dossier2 -type f -name "image*"

Sortie :

./dossier1/image1.jpg
./dossier2/image2.png

 

7. Chercher des fichiers avec les permissions 0666

Trouvez tous les fichiers dont les permissions sont 0666.

[[email protected] ~]# find . -type f -perm 0666 -print

 

8. Chercher des fichiers qui n’ont pas les permissions 0666

Trouvez tous les fichiers dont ne dispose pas les permissions 0666.

[[email protected] ~]# find / -type f ! -perm 0666

 

9. Chercher les fichiers en lecture seule
[[email protected] ~]# find / -perm /u=r

 
 

10. Trouver les fichiers exécutables
[[email protected] ~]# find / -perm /a=x

 

11. Trouver des fichiers appartenant à un utilisateur particulier
[[email protected] ~]# find . -user waytolearnx

Nous pourrions également spécifier le nom du fichier avec les critères de l’utilisateur

[roo[email protected] ~]# find . -user waytolearnx -name '*.pdf'

 

12. Trouver des fichiers appartenant à un groupe particulier
[[email protected] ~]# find /var/www -group programmeur

 

13. Trouver les fichiers modifiés depuis 10 jours
[[email protected] ~]# find / -mtime 10

 

14. Chercher les fichiers consultés au cours des 3 derniers jours
[[email protected] ~]# find / -atime 3

 

15. Trouvez tous les fichiers modifiés entre 10 et 50 jours auparavant.
[[email protected] ~]# find / -mtime +10 –mtime -50

 

16. Chercher les fichiers modifiés au cours des 5 dernières minutes
[[email protected] ~]# find /home/tp -cmin -5

 

17. Chercher les fichiers modifiés depuis une heure
[[email protected] ~]# find / -mmin -60

 

18. Trouver des fichiers en fonction de sa taille
[[email protected] ~]# find / -size 100M

 

19. Trouver des fichiers qui ont une taille > 10 Mo et < 40 Mo.
[[email protected] ~]# find / -size +10M -size -40M

 

20. Trouver des fichiers et des répertoires vides

La commande suivante utilise l’option « -empty », qui cherche tous les fichiers vides.

[[email protected] ~]# find /tmp -type f -empty

Pour lister tous les répertoires vides, utilisez l’option « -type » avec le paramètre « d ».

[[email protected] ~]# find ~/ -type d -empty

 

Une réflexion sur “20 exemples pratiques avec la commande find sous Linux

  • décembre 9, 2021 à 7:47
    Permalien

    Bonjour,

    chouette article contribuant au monde merveilleux des lignes de commandes

    Voici une ligne de commande que j’ai construite pour un serveur qui reçoit des captures de vidéo de surveillance et qui les efface après un certain nombre de jours ( dans un cron)
    find /home/chemin/ -type f -mtime +20 -delete

    le -delete me parait intéressant

    bien à vous

    Eric

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *