Dans ce tutoriel, nous verrons différentes manières d’utiliser le trouver commande pour nous aider à trouver des fichiers et des répertoires dans le système de fichiers Linux. Parfois, nous égarons un fichier ou un répertoire et nous pouvons passer un temps précieux à chercher via le terminal. Sur le bureau Linux, le gestionnaire de fichiers aura un outil de recherche intégré, tout comme le terminal. Le trouver La commande est extrêmement utile et exceptionnellement facile à utiliser.
Pendant que vous vous habituez à ces commandes, il est bon de travailler avec des fichiers et des répertoires de test et vous devez prendre des précautions supplémentaires pour vous assurer que vous suivez attentivement les instructions.
Toutes les commandes de ce tutoriel fonctionneront sur la plupart des machines Linux. Nous avons utilisé une installation d’Ubuntu 20.04, mais vous pouvez exécuter ce guide sur un Tarte aux framboises. Toutes les procédures sont effectuées via le terminal. Vous pouvez ouvrir une fenêtre de terminal sur la plupart des machines Linux en appuyant sur ctrl, alt et t.
Trouver un fichier sous Linux
Pour commencer, créons quelques exemples de fichiers dans un répertoire, puis utilisons le trouver commande pour les trouver.
1. Créez un dossier de test contenant les fichiers de test. Après avoir créé le répertoire de test et les fichiers, vérifiez que les fichiers ont été créés à l’aide de ls.
mkdir test
cd test
touch test1.txt test2.h test3.c TEST.f
ls
2. Dans le test répertoire, recherchez le fichier appelé test1.txt. En utilisant trouver avec « . » indique que la recherche doit être limitée au répertoire de travail courant. Après avoir exécuté le trouver commande, vous devriez voir le test1.txt fichier répertorié en conséquence.
find . -name test1.txt
Recherche à l’aide d’un nom de fichier partiel sous Linux
À l’occasion, nous pouvons être amenés à effectuer une recherche à l’aide de noms de fichiers ou de répertoires partiels. Voyons comment procéder et comment la recherche de termes partiels affecte les résultats.
1. Dans le test répertoire exécutez la commande suivante en recherchant les fichiers contenant le terme « tes » au sein de leur nom.
find . -name “*tes*”
Dans la liste des résultats, vous devriez voir que tous les fichiers ont été trouvés et listés saufTEST.f , cela est dû à -Nom retour des résultats sensibles à la casse. Nous examinerons une alternative qui renvoie des résultats non sensibles à la casse dans une section ultérieure.
2. Répétez la commande en recherchant une extension de fichier spécifique. Nous pouvons utiliser la même méthode pour rechercher un type de fichier particulier. Modification de la commande pour rechercher« *.SMS* » renverra uniquement le type de fichier .txt.
find . -name “*.txt*”
3. Utiliser -mon nom pour renvoyer des résultats non sensibles à la casse. Ici, nous utilisons le terme de recherche partiel« *tes* » encore mais en utilisant -mon nom force la commande à afficher tous les résultats indépendamment des majuscules ou des minuscules. Les résultats incluent donc notre fichier TEST.f .
find . -iname “*tes*”
Distinguer les répertoires et les fichiers sous Linux
Dans sa forme standard, le trouver La commande renverra également tous les résultats correspondants, qu’il s’agisse de fichiers ou de répertoires. Nous pouvons également ajouter des balises au trouver commande qui force la commande à ne renvoyer que des fichiers ou uniquement des résultats de répertoire.
1. Ajouter un répertoire à l’intérieur de notre test répertoire appelé test2. Utiliser ls pour confirmer que le répertoire a été créé.
cd test
mkdir test2
ls
2. Exécutez un trouver commande qui renverra à la fois les résultats du fichier et du répertoire. Vous devriez voir que le résultat contient tous les fichiers de test ainsi que les test2 annuaire.
find . -iname “*test*”
3. Ajouter le -type f balise pour renvoyer uniquement les résultats du fichier. Notez que dans les résultats le répertoire test2 est omis.
find . -iname “*test*” -type f
4. Ajoutez la balise -type d pour renvoyer uniquement les résultats du répertoire. Notez que le seul résultat maintenant devrait être le test2 annuaire.
find . -iname “*test*” -type d
Recherche dans tout le système de fichiers sous Linux
Vous devrez peut-être rechercher dans tout le système de fichiers pour essayer de trouver un fichier égaré ou oublié.
1. Rechercher le test1.txt fichier à partir de la racine (/) du système de fichiers. Cette étape n’est pas très réussie et a été ajoutée pour illustrer un problème courant.
cd
find / -iname test1.txt
Vous constaterez que vous n’êtes pas autorisé à rechercher dans de nombreux domaines, cela se traduit par une longue liste de domaines que nous ne pouvons pas rechercher et, bien que notre test1.txt fichier a été localisé, nous devons rechercher dans la liste des rapports pour le trouver. Remarquez dans cet exemple que nous utilisons / pour permettre à la commande de rechercher tous les sous-répertoires.
2. Répétez la recherche précédente mais utilisez sudo pour ajouter des privilèges root. Cela donne alors à la commande l’autorisation d’accéder à la plupart des endroits du système de fichiers et, en tant que tel, le rapport renvoyé sera beaucoup plus clair et plus facile à lire.
sudo find / -iname test1.txt
Avec ces exemples, vous devriez maintenant disposer d’un ensemble d’outils de base pour trouver n’importe quel fichier n’importe où sur votre système, même si vous ne connaissez qu’une partie de son nom.