Trouver un fichier dans une machine Linux peut être difficile si vous ne savez pas comment faire. Le meilleur moyen de trouver des fichiers est d'utiliser plusieurs commandes de terminal différentes. Maitriser ces commandes peut vous donner un contrôle total sur vos fichiers, et elles sont bien plus puissantes que de simples fonctionnalités de recherche d'autres systèmes d'exploitation.

Méthode 1
Méthode 1 sur 3:
Utiliser « find »

  1. 1
    Cherchez un fichier par son nom de fichier. Il s'agit de la recherche la plus basique que vous puissiez lancer en utilisant la commande find. La commande ci-dessous cherchera votre requête dans le dossier actuel et dans tout sous-dossier[1] .
    find -iname "nomdefichier"
    
    • Utiliser -iname au lieu de -name fait ignorer la casse de votre requête. La commande -name est sensible à la casse.
  2. 2
    Faites démarrer la recherche dans le dossier « root ». Si vous voulez chercher dans tout votre système, vous pouvez ajouter le modificateur / à votre requête. Cela dira à find de chercher dans tous les répertoires à partir du dossier « root ».
    find / -iname "nomdefichier"
    
    • Vous pouvez faire démarrer la recherche dans un dossier spécifique en remplaçant/ par le chemin d'un répertoire, comme /home/pat.
    • Vous pouvez utiliser un . à la place d'un / pour forcer la recherche à ne se faire que dans le dossier actuel et ses sous-dossiers.
  3. 3
    Utilisez le caractère de remplacement .* pour chercher quelque chose qui correspond à ce morceau de requête. Le caractère de remplacement * peut être utile pour chercher quelque chose dont vous ne connaissez pas le nom complet, ou si vous voulez chercher tout ce qui a une extension en particulier.
    find /home/pat -iname "*.conf"
    
    • Cela renverra tous les fichiers .conf dans le dossier utilisateur de Pat (et ses sous-dossiers).
    • Vous pouvez aussi l'utiliser pour trouver tout ce qui correspond à une portion du nom du fichier. Par exemple, si vous avez beaucoup de documents ayant un rapport avec wikiHow, vous pouvez les trouver tous à la fois en tapant « *wiki* ».
  4. 4
    Rendez vos résultats de recherche plus faciles à gérer. Si vous obtenez beaucoup de résultats de recherche, il peut vous être difficile de les parcourir. Utilisez le caractère | pour envoyer les résultats de recherche à un logiciel filtrant « moins ». Il peut vous permettre de faire défiler les résultats et de les filtrer bien plus facilement.
    find /home/pat -iname "*.conf" | less
    
  5. 5
    Cherchez des types spécifiques de résultats. Vous pouvez utiliser des modificateurs pour renvoyer uniquement des types de résultats particuliers. Vous pouvez chercher des fichiers normaux (f), des répertoires (d), des liens symboliques (l), des périphériques de caractères (c) et des dispositifs de blocage (b) en utilisant le modificateur approprié.
    find / -type f -iname "nomdefichier"
    
  6. 6
    Filtrez vos résultats de recherche par taille. Si vous avez de nombreux fichiers avec des noms similaires, mais que vous connaissez la taille de ce que vous cherchez, vous pouvez filtrer vos résultats par leur taille.
    find / -size +50M -iname "nomdefichier"
    
    • Cela renverra les résultats qui font 50 mégaoctets ou plus. Vous pouvez utiliser + ou - pour chercher des tailles supérieures ou inférieures. Oubliez le + ou le - lancera une recherche pour des fichiers qui font exactement la taille spécifiée.
    • Vous pouvez filtrer par nombre d'octets (c), de kilooctets (k), de mégaoctets (M), de gigaoctets (G), ou par blocs de 512 octets (b). Notez que la balise de taille est sensible à la casse.
  7. 7
    Utilisez des opérateurs booléens pour combiner des filtres de recherche. Vous pouvez utiliser les opérateurs -and, -or et -not pour combiner différents types de recherche en une seule[2] .
    find /photosdevacances -type f -size +200k -not -iname "*2015*"
    
    • La commande ci-dessus trouvera les fichiers dans le répertoire « photosdevacances » qui ont une taille supérieure à 200 kilooctets mais qui ne contiennent « 2015 » nulle part dans leur nom de fichier.
  8. 8
    Cherchez des fichiers par propriétaire ou par permissions. Si vous essayez de chercher un fichier spécifique dont le propriétaire est un utilisateur en particulier, ou des fichiers avec certaines permissions, vous pouvez restreindre votre champ de recherche.
    find / -user pat -iname "nomdefichier"
    find / -group users -iname "nomdefichier"
    find / -perm 777 -iname "nomdefichier"
    
    • Les exemples ci-dessus chercheront les utilisateurs, groupes ou permissions précisés dans la requête. Vous pouvez aussi ne pas spécifier le nom du fichier que vous cherchez pour voir tous les fichiers qui correspondent au type demandé renvoyés. Par exemple, find / -perm 777 vous retournera tous les fichiers disposant des permissions 777 (aucune restriction)[3] .
  9. 9
    Combinez les commandes pour faire exécuter des actions quand les fichiers sont trouvés. Vous pouvez combiner la commande find avec d'autres commandes afin de pouvoir faire exécuter ces dernières sur les fichiers qui sont renvoyés par la requête. Séparez la commande find de la seconde commande par la balise -exec, puis finissez la ligne par {} \;
    find . -type f -perm 777 -exec chmod 755 {} \;
    
    • Cela va lancer une recherche dans le dossier actuel (et tous ses sous-dossiers) pour les fichiers qui disposent des permissions 777. La console va ensuite utiliser la commande chmod pour changer les permissions en 755.
    Publicité

Méthode 2
Méthode 2 sur 3:
Utiliser « locate »

  1. 1
    Installez la fonctionnalité .locate. La commande locate fonctionne généralement beaucoup plus rapidement que find, car elle fonctionne à l'aide d'une base de données issue de la structure de vos fichiers. Toutes les distributions Linux ne viennent pas d'emblée avec la fonctionnalité locate installée dessus, donc tapez les commandes suivantes pour la faire installer :
    • Tapez sudo apt-get update et appuyez sur Entrée.
    • Tapez sudo apt-get install mlocate et appuyez sur Entrée. Si locate est déjà installé, vous recevrez le message mlocate is already the newest version.
  2. 2
    Mettez à jour votre base de données .locate. La commande locate ne pourra rien trouver tant que sa base de données n'aura pas été construite et mise à jour. Cela se fait automatiquement tous les jours, mais vous pouvez lancer une mise à jour manuellement également. Vous devrez faire cela si vous voulez commencer à utiliser locate immédiatement[4] .
    • Tapez sudo updatedb et appuyez sur Entrée.
  3. 3
    Utilisez .locate pour faire des recherches simples. La commande locate est rapide, mais elle ne dispose pas d'autant d'options que la commande find. Vous pouvez lacer une recherche de fichier basique plus ou moins de la même manière qu'avec la commande find.
    locate -i "*.jpg"
    
    • Cette commande cherchera les fichiers avec l'extension .jpg sur toute votre machine. Le caractère de remplacement * fonctionne de la même manière qu'avec la commande find.
    • Comme pour la commande find, le -i fait ignorer la casse de votre requête.
  4. 4
    Limitez vos résultats de recherche. Si vos requêtes vous renvoient trop de résultats à gérer, vous pouvez en enlever une partie en utilisant l'option -n, suivie du nombre de résultats que vous voulez faire afficher.
    locate -n 20 -i "*.jpg"
    
    • Seuls les 20 premiers résultats correspondant à la requête seront affichés.
    • Vous pouvez aussi utiliser l'astuce du | pour envoyer les résultats vers less afin de les parcourir plus facilement.
    Publicité

Méthode 3
Méthode 3 sur 3:
Chercher du texte dans des fichiers

  1. 1
    Utilisez la commande .grep pour chercher des suites de caractères au sein de fichiers. Si vous cherchez un fichier qui contient une certaine phrase ou une suite de caractères, vous pouvez utiliser la commande grep. Une commande basique de grep prend la forme suivante :
    grep -r -i "requête" /chemin/vers/répertoire/
    
    • L'option-r sets the search to "recursive", rend la recherche « récursive », donc elle cherchera tout fichier contenant la suite de caractères de la requête dans le dossier actuel et tous ses sous-dossiers.
    • L'option -i indique que la requête n'est pas sensible à la casse. Si vous voulez forcer la recherche à être sensible à la casse, ne mettez pas l'opérateur -i.
  2. 2
    Enlevez le texte supplémentaire. Quand vous faites une recherche avec grep comme ci-dessus, vous verrez le nom du fichier qui sera surligné à côté du texte correspondant à la recherche. Vous pouvez cacher le texte correspondant et simplement faire afficher les noms de fichier et leurs chemins en incluant ce qui suit :
    grep -r -i "requête" /chemin/vers/répertoire/ | cut -d: -f1
    
  3. 3
    Cachez les messages d'erreur. La commande grep renverra une erreur quand elle tentera d'accéder à des dossiers sans les permissions appropriées ou quand elle essaiera de se lancer dans des dossiers vides. Vous pouvez renvoyer les messages d'erreur vers /dev/null, ce qui les cachera de votre affichage en sortie[5] .
    grep -r -i "requête" /chemin/vers/répertoire/ 2>/dev/null
    
    Publicité

À propos de ce wikiHow

wikiHow est un wiki, ce qui veut dire que de nombreux articles sont rédigés par plusieurs auteurs(es). Pour créer cet article, 13 personnes, certaines anonymes, ont participé à son édition et à son amélioration au fil du temps. Cet article a été consulté 174 486 fois.
Catégories: Linux
Résumé de l'articleX

1. Ouvrez l'invite de commande.
2. Tapez la commande / file -iname nomfichier
3. Remplacez « nomfichier » par le nom du fichier.
4. Validez en appuyant sur Entrée.

Publicité