Recherche sur le site Web

Comment rechercher des fichiers sous Linux à partir de la ligne de commande


Si vous rencontrez des difficultés pour trouver des fichiers dans votre distribution Linux, il existe un outil de ligne de commande intégré qui facilite grandement votre travail.

J'utilise Linux depuis des décennies et, bien que la ligne de commande soit une seconde nature pour moi, je choisis toujours d'utiliser des outils GUI car ils ont tendance à être beaucoup plus efficaces que leurs homologues basés sur un terminal. Il y a cependant une tâche pour laquelle je me tourne toujours vers la ligne de commande : trouver des fichiers.

Oui, il existe de nombreux outils GUI disponibles à cet effet et de nombreux environnements de bureau intègrent cette fonctionnalité dans leurs menus d'application. Cependant, je trouve que certaines de ces options ne sont pas idéales pour localiser des fichiers et leur indexation peut parfois entraîner des ralentissements du système. Pour ces raisons, je préfère ouvrir une fenêtre de terminal et localiser le fichier en question.

Le seul inconvénient de cette méthode est que, contrairement à l’utilisation d’une interface graphique, une fois qu’un fichier est trouvé, vous devez l’ouvrir manuellement. L'outil GUI trouvera le fichier et vous permettra ensuite de simplement cliquer (ou double-cliquer) pour l'ouvrir. Avec l’option de ligne de commande, l’emplacement du fichier vous sera présenté. Ensuite, vous devrez ouvrir l'application associée et ouvrir le fichier via le menu Fichier > Ouvrir de l'application. Cependant, ce processus manuel est un compromis que je suis prêt à accepter pour la rapidité et la précision de l'outil de ligne de commande.

Laissez-moi vous montrer comment utiliser l'outil.

Comment trouver un fichier à partir de la CLI

Ce dont vous aurez besoin : La seule chose dont vous aurez besoin pour cette tâche est une instance en cours d'exécution de presque n'importe quelle distribution Linux. J'utilise la commande find pour deux raisons : elle est installée par défaut et elle est facile à utiliser. Laissez-moi vous montrer à quel point il est facile de trouver un fichier sous Linux.

1. L'utilisation de base de la commande find

Ouvrez une fenêtre de terminal à partir du menu de votre bureau. Avec l'application de terminal ouverte, tapez la syntaxe de la commande de recherche de base :

find -name FILE

Dans la commande ci-dessus, FILE est le nom du fichier que vous recherchez.

Maintenant, laissez-moi vous expliquer quelques choses. Tout d’abord, vous « nommez » pour correspondre à un modèle. Vous pouvez utiliser find sans nom, mais il ne trouvera pas le fichier que vous recherchez à moins que vous ne soyez dans le bon répertoire hébergeant le fichier. Cette restriction, bien sûr, est probablement peu ou pas utile, alors n'oubliez pas d'ajouter -name à la commande et elle localisera le fichier en question, quel que soit l'endroit où vous avez exécuté la commande.

Deuxièmement, FILE est sensible à la casse. Si vous recherchez un fichier nommé MyFile et que vous utilisez la commande find -name myfile, find ne pourra pas localiser le fichier. Troisièmement, la commande find ne pourra rechercher que les fichiers dans les répertoires que vous êtes autorisé à afficher. Si find tombe sur un répertoire auquel vous n'avez pas accès, vous recevrez l'erreur Autorisation refusée.

2. Un truc et un piège

Disons que vous recherchez MyFile.txt. Vous pouvez simplement exécuter la commande :

find -name MyFile.txt

Mais qu'en est-il si vous avez des fichiers nommés MyFile.txt, MyFile,odt et MyFile.rtf et que vous souhaitez savoir où ils se trouvent tous ? Dans cette situation, vous pouvez utiliser le caractère générique *, comme ceci :

find -name MyFile.*

Désormais, find recherchera toutes les instances de MyFile et indiquera où elles se trouvent.

Cependant, il y a un piège dans cette astuce. Disons que vous avez MyFile.rtf dans votre répertoire personnel (alias ~/), MyFile.odt dans votre répertoire Téléchargements et MyFile.txt dans votre répertoire Documents.

Si vous êtes dans votre répertoire personnel et que vous exécutez la commande find -name MyFile.*, la commande trouvera MyFile.rtf dans le répertoire personnel et cessera de chercher.

Mais si vous êtes dans le répertoire racine de votre système (alias /) et que vous exécutez la commande find , elle trouvera les trois fichiers, avec un résultat similaire à celui-ci :

./jack/MyFile.rtf
./jack/Downloads/MyFile.odt
./jack/Documents/MyFile.txt

Il existe un autre moyen de contourner ce piège, en plaçant le nom du fichier entre guillemets, comme ceci :

find -name "MyFile.*"

Même si vous êtes dans votre répertoire personnel, find continuera la recherche après avoir localisé la première instance du fichier. Mon conseil est de prendre l'habitude de toujours utiliser des guillemets pour les noms de fichiers.

Et voilà à quel point il est facile de trouver des fichiers sous Linux à partir de la ligne de commande.

Articles connexes