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.

[root@waytolearnx ~]# 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.

[root@waytolearnx ~]# find

Sortie :

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

Les deux commandes suivantes sont les mêmes:

[root@waytolearnx ~]# find .
[root@waytolearnx ~]# find . -print

 

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

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

[root@waytolearnx ~]# 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.

[root@waytolearnx ~]# find ./home -name "spin.exo"

Sortie :

./home/jeux/spin.exo

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

[root@waytolearnx ~]# 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 ».

[root@waytolearnx ~]# 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 /.

[root@waytolearnx ~]# 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.

[root@waytolearnx ~]# find ~ -type f -name ".*"

Sortie :

.picture.jpg
/exec/.config

 

6. Chercher dans plusieurs dossier en parallèle
[root@waytolearnx ~]# 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.

[root@waytolearnx ~]# 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.

[root@waytolearnx ~]# find / -type f ! -perm 0666

 

9. Chercher les fichiers en lecture seule
[root@waytolearnx ~]# find / -perm /u=r

 
 

10. Trouver les fichiers exécutables
[root@waytolearnx ~]# find / -perm /a=x

 

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

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

[root@waytolearnx ~]# find . -user waytolearnx -name '*.pdf'

 

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

 

13. Trouver les fichiers modifiés depuis 10 jours
[root@waytolearnx ~]# find / -mtime 10

 

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

 

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

 

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

 

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

 

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

 

19. Trouver des fichiers qui ont une taille > 10 Mo et < 40 Mo.
[root@waytolearnx ~]# 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.

[root@waytolearnx ~]# find /tmp -type f -empty

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

[root@waytolearnx ~]# find ~/ -type d -empty

 

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

  • décembre 9, 2021 à 7:47 pm
    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 *