Commande Linux FIND avec exemples

Savez-vous combien de fichiers se trouvent dans une nouvelle installation de Linux ? Si vous utilisez PopOS! Distribution Linux(Linux distribution) à titre d'exemple, il y a plus de 31 000 fichiers. C'est avant de commencer à créer des documents, à stocker de la musique, à télécharger des fichiers PDF(PDFs) ou à organiser des images.

Pour cette raison, trouver le bon fichier ou dossier sous Linux lorsque vous en avez besoin devient un défi. Dans cet article, vous apprendrez à utiliser la commande Linux FIND , et nous allons vous donner tous les exemples possibles.

Syntaxe de la commande Linux FIND(Linux FIND Command Syntax)

La syntaxe fait référence à la façon dont les mots, ou les commandes, sont assemblés. Tout(Just) comme une phrase normale peut devenir absurde en mélangeant simplement les mots, les commandes peuvent échouer si elles ne sont pas utilisées dans la syntaxe appropriée.

trouver [chemin] [conditions] [actions](find [path] [conditions] [actions])

Voici ce que cela signifie :

find - lance l' utilitaire Find sous (Find)Linux

chemin(path ) - où chercher

conditions – arguments que vous souhaitez appliquer à la recherche

actions – ce que vous voulez faire avec les résultats

Un exemple simple utilisant les trois ressemble à :

trouver . -name file-sample.rtf -print(find . -name file-sample.rtf -print)

Comme vous l'avez deviné, cela trouvera le nom de fichier file-sample.rtf(file-sample.rtf)

Le chemin d'accès point ( . ) indique à find de rechercher dans le répertoire courant et dans tous les répertoires qu'il contient. 

La condition -name indique à find d'obtenir le fichier portant ce nom spécifique.

L' action -print indique à FIND d'afficher les résultats à l'écran.

Le point et -print sont les valeurs par défaut de la commande find. Il fera donc toujours la même chose si vous ne les utilisez pas. Ainsi, find -name file-sample.rtf vous donnera les mêmes résultats.

Linux TROUVER dans un autre répertoire(Linux FIND In Another Directory)

Vous pouvez effectuer une recherche dans un répertoire différent de celui dans lequel vous vous trouvez. Insérez simplement(Just) le chemin d'accès au répertoire après FIND . Si vous êtes à la racine et que vous savez que le fichier se trouve quelque part dans le répertoire home/user , vous utiliserez :

find home/user -name file-sample.rtf

C'est toujours une recherche récursive, donc elle passera par tous les répertoires sous user .

Linux FIND Rechercher dans plusieurs répertoires(Linux FIND Search Multiple Directories)

Si vous souhaitez effectuer une recherche dans plusieurs répertoires à la fois, il vous suffit de les lister dans la commande, séparés par un espace.

find /lib /var /bin -name file-sample.rtf

Linux FIND sans récursivité ni limitation de la récursivité(Linux FIND with No Recursion or Limiting Recursion)

Si vous utilisiez la commande FIND ci-dessus au niveau racine, elle parcourrait tous les répertoires du système. Donc, si vous voulez vous en tenir au répertoire actuel, utilisez l' option -maxdepth . Le nombre après -maxdepth indique à Find la profondeur à parcourir avant de s'arrêter. 

L'utilisation de -maxdepth 1(-maxdepth 1 ) signifie uniquement ce répertoire. 

find -name file-sample.rtf -maxdepth 1

L'utilisation de -maxdepth 2(-maxdepth 2 ) ou d'un nombre supérieur signifie aller plus loin de plusieurs niveaux.

find -maxdepth 5 -name file-sample.rtf

Linux FIND Wildcard Exemple(Linux FIND Wildcard Example)

La commande FIND utilise l'astérisque ( * ) comme caractère générique. Utilisez-le pour toute partie du nom dont vous n'êtes pas sûr. Il peut être utilisé plus d'une fois dans le nom. Sans le type de fichier dans le nom du fichier, les résultats incluront également les répertoires correspondants.

find home/user -name file*sample*

Linux TROUVER par type Exemple(Linux FIND by Type Example)

Pour rechercher uniquement un fichier ou un répertoire, utilisez l'option -type et le descripteur approprié. Il y en a quelques-uns, mais les fichiers et les répertoires sont les plus courants :

f - fichier

d – répertoire

b – bloquer l'appareil

c - périphérique de caractères

l – lien symbolique

s - prise

find home/user -name file*sample* -type d

Exemple Linux FIND insensible à la casse(Linux FIND Case Insensitive Example)

Contrairement à Windows , Linux se soucie de savoir si une lettre est en majuscule ou en minuscule. Donc, si vous voulez qu'il recherche à la fois File-Sample.rtf et file-sample.rtf, utilisez l' option -iname .

find home/user -iname File-Sample.rtf

Linux TROUVER plusieurs fichiers Exemple(Linux FIND Several Files Example)

Supposons que vous vouliez trouver les versions .rtf et .html d'un fichier. Cela peut être fait en une seule commande en utilisant l' opérateur -o (ou). Dans certaines distributions, vous devrez peut-être mettre les noms entre crochets, comme ( -name file-sample.rtf -o -name file-sample.html )

find home/user -name file-sample.rtf -o -name file-sample.html

Linux TROUVER des fichiers qui ne correspondent pas à un nom(Linux FIND Files That Don’t Match a Name)

Peut-être savez-vous qu'il existe la version .html d'un fichier, mais pas s'il y en a d'autres. Vous pouvez filtrer la version .html de la recherche en utilisant l' option -not .

find home/user -name file-sample* -not -name *.html

Linux FIND sans résultats d'erreur(Linux FIND Without Error Results)

Dans l'exemple de recherche sans récursivité, notez qu'il a répertorié tous les répertoires dans lesquels il n'a pas pu effectuer de recherche et le résultat correct. C'est ennuyeux. Arrêtons-le d'afficher tous ces répertoires " Permission refusée ". Combinez-le avec une autre commande de terminal Linux(Linux terminal command) , grep. Vous pouvez également utiliser Rechercher(Find) avec grep pour rechercher des fichiers contenant des mots spécifiques(find files with specific words in them) .

find -maxdepth 5 -name file-sample.rtf 2>&1 | grep -v “Permission denied”

Décomposons 2>&1 .

2 - représente stderr qui est l'abréviation de sortie d'erreurs standard. 

1 - représente stdout qui est l'abréviation de sortie standard

> – signifie rediriger la sortie qui se trouve à sa gauche vers celle qui se trouve à sa droite.

& – signifie assembler.

Donc 2>&1 signifie prendre les erreurs standard et les rediriger, puis les assembler avec la sortie standard en une seule sortie.

Regardons maintenant | grep -v “Permission denied” .

| (appelé un tube) - indique à Linux de transmettre les résultats de tout ce qui se trouve à sa gauche à ce qui se trouve à sa droite. Il est envoyé à la commande grep.

grep – est un utilitaire de recherche de texte. 

-v - indique à grep de rechercher tout ce qui ne correspond pas au texte à gauche du -v. Dans ce cas, il est dit à grep de ne trouver que tout ce qui ne contient pas le texte ou la chaîne « Permission refusée ». Ainsi, grep ne vous montrera que les résultats que vous recherchez et toutes les erreurs qui ne correspondent pas à « Autorisation(Permission) refusée ».

Linux FIND by Permissions Example

Pour bien l'utiliser, vous devez apprendre les autorisations Linux(learn Linux permissions)

Les fichiers d'exemple ont tous les autorisations 664, sauf un avec les autorisations 775. Utilisez l' option -perm pour le trouver.

find Documents/ -name file-sample* -type f -perm 775

Linux TROUVER par exemple de taille(Linux FIND by Size Example)

La recherche de fichiers par taille est pratique pour obtenir ces fichiers volumineux remplissant votre disque dur. Utilisez l'option -size, la taille souhaitée et l'un des suffixes suivants. Si aucun suffixe n'est utilisé, -size est par défaut b . Pour rechercher des fichiers dont la taille est égale ou supérieure à une certaine taille, placez le signe plus (+) devant la taille.

M – Mégaoctets

G – Gigaoctets

k – Kilooctets

b – blocs (512 octets – par défaut)

c - octets

w - mots (deux octets ensemble)

find -size +500k

TROUVER Linux par propriétaire(Linux FIND by Owner)

Il existe deux façons de rechercher des fichiers par propriétaire. L'un est par le nom d'utilisateur d'un propriétaire et l'autre par le groupe de l'utilisateur. Pour rechercher par nom d'utilisateur, utilisez l' option -user , suivie du nom d'utilisateur. Pour rechercher par groupe d'utilisateurs, utilisez -group suivi du nom du groupe.

find -user nom_groupe(find -user groupname ) ou find -user nom_utilisateur(find -user username)

Fichiers Linux FIND par dernier exemple modifié(Linux FIND Files by Last Modified Example)

Pour rechercher des fichiers qui ont été modifiés ou édités au cours des X derniers jours, utilisez -mtime suivi d'un nombre. Mettre un signe moins ( - ) devant le nombre trouvera tout ce qui a été modifié au cours de ces nombreux jours d'ici maintenant. Un signe plus ( + ) signifie dans ce nombre de jours avant maintenant. 

find -name “file-sample*” -mtime +5 (greater than 5 days ago)

find -name “file-sample*” -mtime -5 (less than 5 days ago)

Pour rechercher par dernière modification en minutes, utilisez l'option -mmin suivie du nombre de minutes. Utilisez les + et - comme ci-dessus.

find -name “file-sample*” -mmin -5

find -name “file-sample*” -mmin +5

Linux FIND Files by Last Access Time Example(Linux FIND Files by Last Accessed TIme Example)

L'option utilisée pour rechercher des fichiers en fonction de leur dernière ouverture est -atime pour les jours et -amin pour les minutes. Suivez-le avec le nombre de jours ou de minutes pour revenir en arrière et utilisez le signe + et - comme supérieur à et inférieur à.

find -name “file-sample*” -atime -5

find -name “file-sample* -amin -5

Combinez FIND avec d'autres commandes Linux(Combine FIND with Other Linux Commands)

Il y a un exemple ci-dessus d'utilisation de find avec la commande grep, et vous pouvez l'utiliser avec beaucoup d'autres. Vous pouvez voir que l'utilisation de find et d'autres commandes peut être très puissante et un énorme gain de temps. Imaginez(Imagine) devoir supprimer un tas d'un type particulier de fichier. Au lieu de chercher dans l'explorateur de fichiers, créez simplement la bonne commande, et c'est fait en quelques secondes. Comment allez-vous utiliser la commande find maintenant ?



About the author

Je suis un ingénieur logiciel avec une expérience dans l'Explorateur Xbox, Microsoft Excel et l'Explorateur Windows 8.1. Pendant mon temps libre, j'aime jouer à des jeux vidéo et regarder la télévision. J'ai un diplôme de l'Université de l'Utah et je travaille actuellement comme ingénieur logiciel pour une entreprise internationale.



Related posts