Trouver des fichiers sur un système Linux peut être difficile si vous ne savez pas comment. La meilleure façon de trouver des fichiers sous Linux est d'utiliser quelques commandes de terminal. La maîtrise de certaines de ces commandes peut vous donner un contrôle total sur les fichiers, et elles sont plus utiles que les simples fonctions de recherche d'autres systèmes d'exploitation.
Étape
Méthode 1 sur 3: Utilisation de "trouver"
Étape 1. Recherchez les fichiers par nom
Ce type de recherche est le plus basique, et vous pouvez le faire avec la commande find. La commande ci-dessous effectuera une recherche basée sur le mot entré dans le répertoire dans lequel vous vous trouvez ainsi que les sous-répertoires qu'il contient.
find -iname "nom de fichier"
Si vous utilisez -iname au lieu de -name, la différence entre les mots-clés majuscules et minuscules n'aura aucun effet. La commande -name considère les lettres majuscules et minuscules comme des caractères différents
Étape 2. Définissez la recherche pour qu'elle démarre dans le répertoire racine
Si vous souhaitez effectuer une recherche à l'échelle du système, vous pouvez ajouter le modificateur / au mot-clé. Le modificateur indique à la commande find d'effectuer une recherche approfondie, en commençant par le répertoire racine.
find / -iname "nom de fichier"
- Vous pouvez lancer une recherche dans un répertoire spécifique en remplaçant le modificateur / par le chemin du répertoire, par exemple /home/pat.
- Vous pouvez utiliser. autre que / afin que les recherches ne soient effectuées que dans le répertoire dans lequel vous vous trouvez et également dans les sous-répertoires qu'il contient.
Étape 3. Utilisez des caractères génériques
* pour rechercher tout ce qui correspond partiellement à vos mots-clés.
Le caractère générique * peut être utilisé pour rechercher des fichiers dont vous ne connaissez pas le nom complet, ou si vous souhaitez rechercher tous les fichiers avec une extension spécifique.
trouver /home/pat -iname "*.conf"
- La commande ci-dessus renverra tous les fichiers.conf dans le répertoire utilisateur nommé Pat (ainsi que les sous-répertoires qu'il contient).
- Vous pouvez également l'utiliser pour trouver tout ce dont le nom correspond partiellement à ce mot-clé. Par exemple, si vous avez beaucoup de documents liés à wikiHow, vous pouvez les trouver en tapant "*wiki*".
Étape 4. Facilitez la gestion des résultats de recherche
Si les résultats de la recherche sont trop nombreux, il vous sera difficile de trouver le fichier que vous recherchez. Utilisez le caractère | et renvoyer les résultats de la recherche au programme de filtrage "moins". De cette façon, vous pouvez faire défiler et filtrer les résultats de la recherche plus facilement.
find /home/pat -iname "*.conf" | moins
Étape 5. Trouvez des résultats de recherche avec un type spécifique
Vous pouvez utiliser des modificateurs pour renvoyer uniquement certains types de résultats. Vous pouvez rechercher des fichiers normaux (f), des répertoires (d), des liens symboliques (l), des périphériques de caractères (c) et des périphériques de bloc (b) à l'aide des modificateurs appropriés.
find / -type f -iname "nom de fichier"
Étape 6. Filtrez les résultats de la recherche par taille
Si vous avez beaucoup de fichiers avec des noms similaires, mais que vous connaissez la taille du fichier que vous souhaitez, vous pouvez filtrer la recherche par taille.
find / -size +50M -iname "nom de fichier"
- La commande ci-dessus renverra des résultats de recherche de 50 mégaoctets ou plus. Vous pouvez utiliser + ou - pour rechercher des fichiers avec une taille plus grande ou plus petite. L'omission du signe + ou - fait que la recherche ne renvoie que des résultats avec la taille vraiment "correcte".
- Vous pouvez filtrer la recherche par blocs d'octets (c), de kilooctets (k), de mégaoctets (M), de gigaoctets (G) ou de 512 octets (b). Sachez que les marquages distinguent les majuscules des minuscules.
Étape 7. Utilisez des opérateurs booléens pour combiner les filtres de recherche
Vous pouvez utiliser les opérateurs -and, -or et -not pour combiner différentes recherches.
find / travelphotos -type f -size +200k -not -iname "*2015*"
La commande ci-dessus recherchera dans le répertoire " travelphotos " les fichiers d'une taille supérieure à 200 kilo-octets, mais n'ayant pas le mot " 2015 " dans leur nom
Étape 8. Effectuez une recherche de fichier par nom de propriétaire ou autorisation
Si vous essayez de trouver un fichier spécifique qui appartient à un utilisateur spécifique, ou recherchez un fichier avec certaines autorisations, vous pouvez affiner la recherche.
find / -user pat -iname "nom de fichier" find / -group utilisateurs -iname "nom de fichier" find / -perm 777 -iname "nom de fichier"
Les exemples ci-dessus effectueront une recherche pour un utilisateur, un groupe ou une autorisation spécifique dans un mot-clé. Vous pouvez également omettre le nom de fichier pour renvoyer tous les fichiers qui correspondent à ce type. Par exemple, find / -perm 777 renverra tous les fichiers avec les autorisations 777 (aucune restriction)
Étape 9. Concaténez les commandes pour effectuer l'action lorsque le fichier a été trouvé
Vous pouvez combiner la commande find avec d'autres commandes afin de pouvoir traiter les fichiers renvoyés par mot-clé avec cette commande. Séparez la commande find et la deuxième commande par l'indicateur -exec, puis terminez la ligne par {};
trouve. -type f -perm 777 -exec chmod 755 {};
La commande ci-dessus recherchera dans le répertoire dans lequel vous vous trouvez (et tous les sous-répertoires) les fichiers avec les autorisations 777. Ensuite, la commande chmod changera les autorisations en 755
Méthode 2 sur 3: Utilisation de "localiser"
Étape 1. Installez
Localiser Fonctionnalité. La commande locate est généralement plus rapide que la commande find, en raison de l'utilisation de la base de données de votre système de fichiers. Tous les types de Linux ne sont pas équipés d'une fonction de localisation, entrez donc la commande suivante pour l'installer:
- Tapez sudo apt-get update, puis appuyez sur Entrée.
- Vous pouvez l'installer sur Debian et Ubuntu comme ceci: Tapez sudo apt-get install mlocate, puis appuyez sur Entrée. Si la fonction de localisation a été installée précédemment, vous verrez le message mlocate est déjà la version la plus récente.
- Sur Arch Linux, utilisez le gestionnaire de paquets pacman: pacman -Syu mlocate
- Pour Gentoo, utilisez emerge: emerge mlocate
Étape 2. Mettre à jour
Localiser base de données Tu. La commande locate ne pourra rien trouver tant qu'elle n'aura pas été créée et mise à jour. Le processus est généralement effectué automatiquement tous les jours, mais vous pouvez également le mettre à jour manuellement. Vous devez le faire si vous souhaitez utiliser la fonction de localisation dès que possible.
Tapez sudo updatedb, puis appuyez sur Entrée
Étape 3. Utilisez le
Localiser pour effectuer une recherche simple.
La fonction de localisation fonctionne rapidement, mais n'a pas autant d'options que la commande find. Vous pouvez effectuer des recherches de fichiers de base de la même manière que la commande find.
localiser -i "*.jpg"
- La commande ci-dessus recherchera dans tout le système les fichiers avec l'extension.jpg. Le caractère générique * fonctionne de la même manière que la commande find.
- Comme la commande find, le modificateur -i rend également les lettres majuscules et minuscules considérées comme identiques dans les mots-clés.
Étape 4. Limitez les résultats de la recherche
Si votre recherche renvoie tellement de résultats qu'il vous est difficile de les utiliser, vous pouvez réduire ces résultats avec le modificateur -n, suivi du nombre de résultats que vous souhaitez renvoyer.
localiser -n 20 -i "*.jpg"
- Seuls 20 résultats de recherche seront affichés.
- Vous pouvez également utiliser | pour envoyer les résultats de la recherche au programme less filtre pour un défilement plus facile des résultats.
Méthode 3 sur 3: Recherche de texte dans les fichiers
Étape 1. Utilisez la commande
grep pour trouver la chaîne de texte dans le fichier.
Si vous recherchez un fichier contenant une phrase ou une chaîne de caractères spécifique, vous pouvez utiliser la commande grep. La commande grep de base a le format suivant:
grep -r -i "requête de recherche" /chemin/vers/répertoire/
- Le modificateur -r rend la recherche "récursive", donc une recherche sera effectuée dans le répertoire et tous les sous-répertoires qu'il contient pour trouver les fichiers contenant du texte avec le mot-clé de recherche.
- Le modificateur -i indique que le mot-clé de recherche ne fait pas la différence entre les lettres majuscules et minuscules. Si vous souhaitez forcer la recherche à faire la distinction entre les lettres majuscules et minuscules, ignorez le modificateur -i.
Étape 2. Supprimez le texte en excès
Lorsque vous effectuez une recherche grep comme ci-dessus, vous verrez le nom du fichier avec les lettres correspondantes en surbrillance. Vous pouvez masquer le texte correspondant et afficher uniquement le nom et le chemin du répertoire de fichiers en ajoutant:
grep -r -i "mot-clé de recherche" /chemin/vers/répertoire/ | couper -d: -f1
Étape 3. Cachez le message d'erreur
La commande grep renvoie une erreur lors de la tentative d'accès à un répertoire sans les autorisations appropriées ou lors de la saisie d'un répertoire vide. Vous pouvez envoyer des messages d'erreur à /dev/null afin qu'ils n'apparaissent pas.
grep -r -i "mot-clé de recherche" /chemin/vers/répertoire/2>/dev/null