GNU/Linux >> Tutoriels Linux >  >> Linux

Commande de recherche Linux avec des exemples pratiques

La commande find est un puissant utilitaire de recherche utilisé pour localiser des fichiers sous Linux et Unix comme le système d'exploitation. Il peut trouver des fichiers et des répertoires en fonction de différents critères tels que le nom, l'extension, le type, la date de modification et de création, les autorisations, la taille, le propriétaire.

Find peut également effectuer une action basée sur une commande, par exemple rechercher des fichiers et exécuter delete, count, etc.

Ce didacticiel se concentrera sur l'explication de la manière d'utiliser la commande de recherche et vous guidera à travers des exemples.

Syntaxe :

La syntaxe de base de find l'utilisation de la commande est la suivante :

find <directory-to-search> [OPTIONS] <find name,file,extension>

Le -H et -L permettent de gérer les liens symboliques lors de la recherche, -P (ne pas suivre les liens symboliques) et -L (suivre les liens symboliques).

1. Rechercher un fichier par nom

Pour trouver un fichier par son nom , utilisez la commande find avec -name option.

En supposant que vous souhaitiez rechercher le fichier portant le nom 'nginx.yaml' dans le répertoire Documents, vous pouvez exécuter la commande suivante :

$ find /Documents -name nginx.yaml

Cela trouvera le fichier nommé "nginx.yaml" dans le Documents/ et tous les sous-répertoires :

De plus, pour rechercher le fichier "nginx.yaml" dans le répertoire courant et tous ses sous-répertoires, exécutez :

$ find -name nginx.yaml

Le point (.) après la commande find indique de lancer la recherche à partir du répertoire courant :

$ find . -name nginx.yaml

2. Rechercher des fichiers par extension

Si vous souhaitez rechercher tous les fichiers par extension , vous pouvez utiliser la commande find avec -name option suivante avec le *.

Par exemple, vous pouvez rechercher tous les fichiers portant l'extension '.png' dans le répertoire personnel en exécutant la commande suivante :

$ find $HOME -name *.png

3. Rechercher uniquement les répertoires

Si vous souhaitez rechercher uniquement les répertoires , vous pouvez exécuter la commande find avec -type d option.

Supposons que vous souhaitiez rechercher tous les répertoires du dossier Documents/, lançons :

$ find /Documents -type d

4. Rechercher uniquement les fichiers

Il existe de nombreux types de fichiers différents sous Linux, tels que :répertoires, liens symboliques, socket, fichiers normaux, etc. Si vous souhaitez rechercher uniquement des fichiers normaux , vous pouvez exécuter la commande find avec l'option '-type f'.

Par exemple, en supposant que vous ne trouviez que des fichiers dans le répertoire courant, lançons :

$ find . -type f

5. Rechercher et supprimer

Dans certaines situations, vous souhaitez rechercher et supprimer fichiers/répertoires qui ne sont plus nécessaires, vous pouvez exécuter la commande find avec l'option '-delete'.

Par exemple, trouvez toutes les images avec l'extension *.png dans le dossier Documents/ et supprimez-les :

$ find /Documents -name *.png -delete

6. Rechercher des fichiers ayant des autorisations spécifiques

Si vous souhaitez rechercher tous les fichiers qui ont une autorisation spécifique , vous pouvez utiliser la commande Linux find avec l'option '-perm'.

Par exemple, pour trouver des fichiers qui ont la permission '755', lançons :

$ find . -type f -perm 775 -exec ls -l {} \;

7. Rechercher des fichiers et des répertoires par date/heure

La commande Linux find vous permet de rechercher des fichiers et des répertoires par horodatage.

Vous pouvez utiliser la commande find avec l'option '-mtime -N' pour rechercher les fichiers dont la dernière modification remonte à 'N' jours. Par exemple, pour rechercher tous les fichiers qui ont été modifiés au cours des 2 derniers jours dans le répertoire courant, lançons :

$ find . -type f -mtime -2 -exec ls -l {} \;

Une autre façon d'utiliser la commande find pour rechercher des fichiers/répertoires par date/heure consiste à utiliser l'option '-newerXY'. Où X et Y peuvent être :

a - le temps d'accès du fichier de référence

B - l'heure de naissance du fichier de référence

c - l'heure de changement d'état de l'inode du fichier de référence

m - l'heure de modification du fichier de référence

t - refer est interprété directement comme une heure

Par exemple, pour rechercher tous les fichiers modifiés le 4 juillet 2020 dans le répertoire courant, lançons :

$ find . -type f -newermt 2020-07-04 -ls

8. Rechercher des fichiers et des répertoires par taille

La commande Linux find vous permet de rechercher des fichiers/répertoires par taille en exécutant la commande avec l'option '-size'.

En supposant que vous souhaitiez rechercher des fichiers supérieurs à 1 Go, vous pouvez exécuter la commande suivante :

$ find . -type f -size +1G

Quelques exemples pratiques

01) Rechercher des fichiers/répertoires vides

Cette sortie listera tous les fichiers et dossiers vides dans le répertoire et les sous-répertoires actuels :

$ find . -empty -ls

02) Trouver tous les fichiers .jpg

$ find . -name *.jpg

03) Trouver tous les répertoires avec la permission 644

La sortie vous montre tous les dossiers du répertoire ou du sous-répertoire actuel qui ont la permission 644 :

$ find . -type d -perm 644 -ls

04) Rechercher des fichiers appartenant à un utilisateur spécifique

Si vous souhaitez vérifier tous les fichiers appartenant à l'utilisateur "cas" dans le répertoire courant, vous pouvez le faire comme suit :

$ find . -user cas -ls

05) Rechercher des fichiers par numéro d'inode

Pour rechercher un fichier par son numéro d'inode, vous pouvez utiliser find avec -inum option. Par exemple :

$ find -inum 534937

06) Compter le nombre de fichiers

$ find -type f -exec basename {} \; | wc -l

07) Compter le nombre de répertoires

$ find -type d -exec basename {} \; | wc -l

08) Rechercher des fichiers avec une profondeur particulière

En supposant que vous souhaitiez rechercher le fichier "Dockerfile" dans le dossier HOME et ses sous-répertoires et non dans les sous-répertoires de niveau supérieur, vous devez définir l'option '-maxdepth' sur 2 comme suit :

$ find $HOME -maxdepth 2 -name Dockerfile

Conclusion

Un autre outil puissant est la commande fd qui est une alternative à la commande find.

Dans ce didacticiel, nous avons appris à utiliser la commande Linux find pour rechercher des fichiers et des répertoires. Merci d'avoir lu et s'il vous plaît laissez votre suggestion dans la section des commentaires ci-dessous.


Linux
  1. 25 exemples pratiques de commande de recherche utiles sous Linux

  2. Commande JQ sous Linux avec exemples

  3. Utilisation de la commande Linux find – Utilisation avec des exemples

  4. Comment rechercher des fichiers avec la commande fd sous Linux

  5. Commande Linux rsync avec des exemples pratiques

12 exemples pratiques d'In Command sous Linux

La commande Wait sous Linux expliquée avec des exemples pratiques

Tutoriel sur la commande de recherche Linux (avec exemples)

Maman, j'ai trouvé ! - 15 exemples pratiques de commande de recherche Linux

Commande lsof sous Linux avec exemples

Commande comm Linux avec exemples