Commande Linux FIND avec exemples


Savez-vous combien de fichiers se trouvent dans une nouvelle installation de Linux ? Si vous utilisez PopOS! Distribution Linux à titre d'exemple, il existe plus de 31 000 fichiers. Et cela avant de commencer à créer des documents, à stocker de la musique, à télécharger des PDF 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

La syntaxe fait référence à la façon dont les mots ou les commandes sont assemblés. Tout 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]

Voici ce que cela signifie :

find – lance l'utilitaire Find sous Linux

chemin – 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 fichier-échantillon.rtf -print

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

Le chemin point (. ) indique à find de rechercher dans le répertoire courant et 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 pour la commande find. Cela fera 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

Vous pouvez effectuer une recherche dans un répertoire différent de celui dans lequel vous vous trouvez. Insérez simplement le chemin du 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 :

trouver home/user -name file-sample.rtf

Il s'agit toujours d'une recherche récursive, elle parcourra donc tous les répertoires sous utilisateur ..

Linux FIND Recherche dans plusieurs répertoires

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

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

Linux FIND sans récursion ou récursion limitée

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

L'utilisation de -maxdegree 1 signifie uniquement ce répertoire.

find -name file-sample.rtf -maxdegree 1

Utiliser -maxdegree 2 ou un nombre supérieur signifie aller plus loin d'autant de niveaux.

trouver -maxdegree 5 -name file-sample.rtf

Exemple de caractère générique Linux FIND

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é plusieurs fois dans le nom. Sans le type de fichier dans le nom du fichier, les résultats incluront également les répertoires correspondants.

trouver le fichier home/user -name*sample*

Exemple de recherche Linux par type

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

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

Exemple Linux FIND insensible à la casse

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

trouver home/user -iname File-Sample.rtf

Exemple Linux FIND avec plusieurs fichiers

Disons que vous vouliez rechercher 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 ) ..

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

Linux FIND Fichiers qui ne correspondent pas à un nom

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

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

Linux FIND sans résultats d'erreur

Dans l'exemple de recherche sans récursion, notez qu'il répertorie tous les répertoires dans lesquels il n'a pas pu effectuer de recherche ainsi que le résultat correct. C'est ennuyeux. Empêchons-le d'afficher tous ces répertoires « Autorisation refusée ». Combinez-le avec un autre Commande de terminal Linux, grep. Vous pouvez également utiliser Rechercher avec grep sur trouver des fichiers contenant des mots spécifiques.

find -maxdegree 5 -name file-sample.rtf 2>&1 | grep -v "Autorisation refusée"

Décomposons 2>&1 .

2  – représente stderrqui est l'abréviation de sortie d'erreurs standard.

1  – représente stdoutqui est l'abréviation de sortie standard

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

& – signifie rassembler.

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

Regardons maintenant | grep -v "Autorisation refusée" .

| (appelé un tube) – indique à Linux de transmettre les résultats de ce qui se trouve à sa gauche à ce qui se trouve à sa droite. Il est transmis à 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 de -v. Dans ce cas, il indique à grep de rechercher uniquement tout ce qui ne contient pas le texte ou la chaîne « Autorisation refusée ». Ainsi, grep ne vous montrera que les résultats que vous recherchez et toutes les erreurs qui ne correspondent pas à « Autorisation refusée ».

Exemple de recherche Linux par autorisations

.

Pour bien l'utiliser, vous devez apprendre les autorisations Linux.

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

trouver des documents/ -name file-sample* -type f -perm 775

Linux TROUVER par exemple de taille

La recherche de fichiers par taille est pratique pour que ces fichiers volumineux remplissent 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 égaux ou supérieurs à 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)

trouver -taille +500k

Linux TROUVER par le propriétaire

Il existe deux manières de rechercher des fichiers par propriétaire. L’un concerne le nom d’utilisateur d’un propriétaire et l’autre 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 de groupe ou find -user nom d'utilisateur

Fichiers Linux FIND par dernier exemple de modification

Pour rechercher les fichiers qui ont été modifiés ou édités au cours des X derniers jours, utilisez -mtime suivi d'un nombre. En plaçant un signe moins ( ) devant le numéro, tout ce qui a été modifié au cours du nombre de jours écoulés sera détecté. Un signe plus (+ ) signifie qu'il y a autant de jours avant maintenant.

find -name « file-sample* » -mtime +5 (il y a plus de 5 jours)

find -name « file-sample* » -mtime -5 (il y a moins de 5 jours)

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

find -name "file-sample*" -mmin -5

find -name "file-sample*" -mmin +5

Exemple de recherche de fichiers Linux par heure du dernier accès

.

L'option utilisée pour rechercher des fichiers en fonction de la date 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 les signes + et – comme supérieur et inférieur à.

find -name "file-sample*" -atime -5

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

Combiner FIND avec d'autres commandes Linux

Il y a ci-dessus un exemple 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 permettre un gain de temps considérable. Imaginez devoir supprimer un certain nombre de fichiers d'un type particulier. Au lieu de chercher dans l’explorateur de fichiers, créez simplement la bonne commande, et cela se fait en quelques secondes. Comment allez-vous utiliser la commande find maintenant ?

.

Articles Similaires:


18.01.2022