Découvrez comment utiliser la commande find dans ce tutoriel de nos archives.

il va sans dire que tout bon environnement de bureau Linux offre la possibilité de rechercher des fichiers et des dossiers dans votre système de fichiers. Si votre bureau par défaut ne le fait pas — car il s’agit de Linux-vous pouvez toujours installer une application pour faciliter la recherche dans votre hiérarchie de répertoires.

mais qu’en est-il de la ligne de commande?, Si vous travaillez fréquemment en ligne de commande ou si vous administrez des serveurs Linux sans interface graphique, où vous tournez-vous lorsque vous devez localiser un fichier? Heureusement, Linux a exactement ce dont vous avez besoin pour localiser les fichiers en question, intégré directement dans le système.

La commande en question est de trouver. Pour rendre la compréhension de cette commande encore plus attrayante, une fois que vous la connaissez, vous pouvez commencer à la travailler dans vos scripts Bash. Ce n’est pas seulement la commodité, c’est la puissance.,

mettons-nous au point avec la commande find afin que vous puissiez prendre le contrôle de la localisation des fichiers sur vos serveurs et bureaux Linux, sans avoir besoin d’une interface graphique.

comment utiliser la commande find

quand J’ai aperçu Linux pour la première fois, en 1997, Je ne comprenais pas très bien comment fonctionnait la commande find; par conséquent, elle n’a jamais semblé fonctionner comme prévu. Cela semblait simple; lancez la commande find FILENAME (où FILENAME est le nom du fichier) et la commande était censée localiser le fichier et faire rapport. Je ne savais pas qu’il y avait plus à la commande que cela. Beaucoup plus.,

Si vous lancez la commande man find, vous verrez que la syntaxe de la commande find est:

find 

naturellement, si vous n’êtes pas familier avec le fonctionnement de man, vous pourriez être confus ou dépassé par cette syntaxe. Pour faciliter la compréhension, simplifions cela. La syntaxe la plus basique d’une commande de recherche de base ressemblerait à ceci:

find /path option filename

maintenant, nous allons le voir à l’œuvre.

recherche par nom

nous allons décomposer cette commande de base pour la rendre aussi claire que possible., La structure la plus simpliste de la commande find doit inclure un chemin pour le fichier, une option et le nom de fichier lui-même. Vous pensez peut – être: « si je connais le chemin d’accès au fichier, je saurais déjà où le trouver!”. Eh bien, le chemin du fichier pourrait être la racine de votre lecteur; donc / serait un chemin légitime. Entrer cela comme votre chemin prendrait plus de temps à traiter — car il doit repartir de zéro — mais si vous ne savez pas où se trouve le fichier, vous pouvez commencer à partir de là. Au nom de l’efficacité, il est toujours préférable d’avoir au moins une idée par où commencer la recherche.,

Le bit suivant de la commande est l’option. Comme avec la plupart des commandes Linux, vous avez un certain nombre d’options disponibles. Cependant, nous commençons par le début, alors facilitons-le. Parce que nous essayons de trouver un fichier par son nom, nous allons utiliser une des deux options:

  • nom – casse

  • iname – casse

Rappelez-vous que Linux est très particulier au sujet de cas, donc si vous cherchez un fichier nommé Linux.odt, la commande suivante ne renverra aucun résultat.,

find / -name linux.odt

Si, cependant, vous deviez modifier la commande en utilisant l’option-iname, la commande find localiserait votre fichier, quel que soit le cas. Donc, la nouvelle commande ressemble à:

find / -iname linux.odt

Find by type

que se passe-t-il si vous n’êtes pas si préoccupé par la localisation d’un fichier par nom mais que vous préférez localiser tous les fichiers d’un certain type?, Certains des plus communs des descripteurs de fichiers sont:

  • f – fichier régulier

  • d – directory

  • l – lien symbolique

  • c – caractère périphériques

  • b – les périphériques de bloc

Maintenant, supposons que vous souhaitez localiser tous les périphériques de bloc (un fichier qui se rapporte à un appareil) sur votre système., Avec l’aide de l’option-type, nous pouvons le faire comme ceci:

find / -type c

La commande ci-dessus entraînerait beaucoup de sortie (une grande partie de celui-ci indiquant permission denied), mais inclurait une sortie semblable à:

/dev/hidraw6/dev/hidraw5/dev/vboxnetctl/dev/vboxdrvu/dev/vboxdrv/dev/dmmidi2/dev/midi2/dev/kvm

Voilà! Bloquer les périphériques.

Nous pouvons utiliser la même option pour nous aider à rechercher des fichiers de configuration. Disons, par exemple, que vous voulez localiser tous les fichiers réguliers qui se terminent par le .extension conf., Cette commande ressemblerait à:

find / -type f -name "*.conf"

la commande ci-dessus parcourrait toute la structure de répertoires pour localiser tous les fichiers réguliers se terminant par .conf. Si vous savez que la plupart de vos fichiers de configuration sont logés dans /etc, Vous pouvez spécifier cela comme ceci:

find /etc -type f -name "*.conf”

la commande ci-dessus répertorierait tous vos .fichiers conf de /etc (Figure 1).

Figure 1: Localisation de tous vos fichiers de configuration dans /etc.,

la Sortie des résultats dans un fichier

vraiment Un truc utile est de sortie les résultats de la recherche dans un fichier. Lorsque vous savez que la sortie peut être étendue, ou si vous voulez passer au peigne fin les résultats plus tard, cela peut être incroyablement utile. Pour cela, nous allons utiliser le même exemple que ci-dessus et canaliser les résultats dans un fichier appelé conf_search. Cette nouvelle commande ressemblerait à:

find /etc -type f -name "*.conf” > conf_search

vous aurez maintenant un fichier (conf_search) qui contient tous les résultats de la commande find émise.,

recherche de fichiers par taille

Maintenant, nous arrivons à un moment où la commande find devient incroyablement utile. J’ai eu des cas où des ordinateurs de bureau ou des serveurs ont trouvé leurs disques mystérieusement remplis. Pour faire rapidement de l’espace (ou d’aider à localiser le problème), vous pouvez utiliser la commande find pour localiser les fichiers d’une certaine taille. Disons, par exemple, que vous voulez aller grand et localiser les fichiers qui sont plus de 1000 Mo. La commande find peut être émise, à l’aide de l’option-size, comme suit:

find / -size +1000MB

vous pourriez être surpris de voir combien de fichiers apparaissent., Avec la sortie de la commande, vous pouvez parcourir la structure du répertoire et libérer de l’espace ou dépanner pour savoir ce qui remplit mystérieusement votre lecteur.

Vous pouvez effectuer une recherche avec la taille suivante descriptions:

  • c – octets

  • k – kilo-octets

  • M – méga-octets

  • G – Giga-octets

  • b – blocs de 512 octets

continuer à apprendre

Nous avons seulement gratté la surface de la commande, mais vous avez maintenant une compréhension fondamentale de la façon de localiser des fichiers sur votre système Linux., Assurez-vous d’émettre la commande man find pour obtenir une connaissance plus approfondie et plus complète de la façon de faire fonctionner cet outil puissant pour vous.

En savoir plus sur Linux grâce au cours Gratuit « Introduction à Linux” de la Fondation Linux et edX.