Tu viens de passer sur Linux, tu commences à te familiariser avec le terminal, et là tu te retrouves face à un problème très concret : tu ne retrouves plus ce fichier de config que tu as modifié hier, ou tu veux savoir si le mot « password » traîne quelque part dans tes fichiers de config. Bonne nouvelle : Linux embarque deux outils redoutables pour ça, disponibles par défaut sur quasiment toutes les distributions : grep et find. Ce guide t’explique comment les utiliser, même si tu n’as jamais ouvert un terminal il y a trois semaines.
Grep et find : deux outils, deux rôles bien distincts
La confusion entre ces deux commandes est ultra-classique chez les débutants, alors autant clarifier ça dès maintenant. find cherche des fichiers sur ton système selon des critères comme le nom, l’extension, la date de modification ou la taille. grep, lui, cherche du texte à l’intérieur des fichiers. L’un localise, l’autre fouille le contenu. Deux outils complémentaires, pas interchangeables.
Qu’est-ce que grep ?
grep (Global Regular Expression Print) lit le contenu d’un ou plusieurs fichiers texte et affiche toutes les lignes qui contiennent le motif que tu lui donnes. Tu peux lui passer une simple chaîne de caractères, ou une expression régulière si tu veux aller plus loin un jour. Pour l’instant, oublie les regex complexes : avec grep, un mot suffit à faire des merveilles.
Qu’est-ce que find ?
find parcourt l’arborescence de ton système de fichiers, un dossier, un disque entier, tout ce que tu veux, et liste les fichiers qui correspondent à tes critères. Il peut chercher par nom exact, par extension, par date de dernière modification, par taille, par propriétaire… La liste est longue. Pour un débutant, les trois premières options couvrent déjà 90% des besoins réels.
Si tu débutes sur Linux et que tu n’es pas encore à l’aise avec l’arborescence des fichiers, jette un œil au guide linux debutant qui pose toutes les bases avant de te lancer dans les recherches avancées.
Vérification et installation : es-tu prêt à commencer ?
Ouvre ton terminal (Ctrl+Alt+T sur la plupart des distributions) et tape ces deux commandes :
grep --version
find --version
Si tu vois un numéro de version s’afficher, parfait, tu es prêt. Ces outils font partie du paquet grep et des GNU coreutils, présents sur Ubuntu, Debian, Fedora, Arch et leurs dérivés dès l’installation. Sur un système vraiment minimaliste (un container Docker par exemple), il peut arriver qu’ils manquent, dans ce cas, sudo apt install grep findutils sur Debian/Ubuntu, ou l’équivalent avec dnf ou pacman selon ta distro.
Tu n’es pas encore à l’aise avec le terminal ? Le guide terminal linux debutant t’explique exactement comment ça fonctionne et comment l’aborder sans stress.
Premiers pas avec grep : chercher du texte dans tes fichiers
La syntaxe de base est simple :
grep "motif" fichier.txt
Par exemple, pour chercher le mot « erreur » dans un fichier de log :
grep "erreur" /var/log/syslog
Toutes les lignes contenant « erreur » s’affichent dans le terminal. Rien de plus, rien de moins.
Les options qui changent tout pour un débutant
Quelques options que tu vas utiliser tout le temps :
-i: ignore la casse (cherche « erreur », « Erreur » et « ERREUR » en même temps)-n: affiche le numéro de ligne devant chaque résultat-r: cherche récursivement dans un dossier et tous ses sous-dossiers--color: met en couleur le motif trouvé dans chaque ligne
En pratique, chercher le mot « database » dans tous les fichiers de configuration d’un dossier ressemble à ça :
grep -rni "database" /etc/monapp/
Tu combines plusieurs options en une seule fois. Le -i évite de rater « Database » ou « DATABASE », le -n te donne le numéro de ligne pour aller directement au bon endroit dans le fichier, et le -r fouille tout le dossier sans que tu aies à ouvrir chaque fichier manuellement.
Pour limiter la recherche à un type de fichier spécifique, ajoute --include :
grep -rn "database" /etc/ --include="*.conf"
Ici, grep ne regardera que les fichiers avec l’extension .conf. Pratique quand un dossier contient des dizaines de types de fichiers différents.
Premiers pas avec find : localiser des fichiers selon leurs propriétés
La structure de base de find est légèrement différente :
find [où chercher] [critère] [valeur]
Pour trouver tous les fichiers nommés « notes.txt » à partir de ton répertoire personnel :
find ~ -name "notes.txt"
Pour trouver tous les fichiers avec l’extension .log dans /var :
find /var -name "*.log"
Par date de modification, très utile quand tu veux retrouver un fichier que tu as modifié hier ou il y a 3 jours :
find ~ -mtime -2
Le -2 signifie « modifié il y a moins de 2 jours ». Un chiffre positif (+7) voudrait dire « il y a plus de 7 jours ».
Pour éviter de plonger dans des sous-dossiers à l’infini, l’option -maxdepth limite la profondeur d’exploration :
find ~/Documents -maxdepth 2 -name "*.pdf"
Ça cherche les PDF uniquement dans Documents et ses sous-dossiers directs, sans aller plus loin. Beaucoup plus rapide sur un gros répertoire.
Combiner grep et find : là où ça devient vraiment puissant
Séparément, ces deux outils sont déjà bien utiles. Ensemble, ils permettent des recherches que tu aurais du mal à faire autrement. Le secret, c’est le pipe (|) et la commande xargs.
Le pipe prend la sortie d’une commande et l’envoie en entrée à la suivante. xargs, lui, transforme une liste de résultats en arguments pour une autre commande. Un peu abstrait ? Voilà un exemple concret.
Tu veux chercher le mot « timeout » dans tous les fichiers .conf de /etc :
find /etc -name "*.conf" | xargs grep -l "timeout"
find liste tous les fichiers .conf, xargs les passe un par un à grep, et -l (l minuscule) demande à grep d’afficher uniquement le nom des fichiers qui contiennent le mot, pas toutes les lignes. Résultat : une liste propre des fichiers pertinents.
Si tu veux voir les lignes en question en plus des noms de fichiers :
find /etc -name "*.conf" | xargs grep -n "timeout"
Ces combinaisons font partie du cœur de la culture commandes linux debutant — une fois que tu comprends comment chaîner les commandes, le terminal devient un outil d’une efficacité redoutable.
Pièges courants et comment les éviter
Le premier piège que tout le monde rencontre : les erreurs de permission. Quand find explore des dossiers système comme /etc ou /root, tu vas voir défiler des messages « Permission denied ». Ça ne veut pas dire que la commande est cassée, juste que certains dossiers ne sont pas accessibles à ton utilisateur normal. Pour les ignorer et garder un affichage propre :
find /etc -name "*.conf" 2>/dev/null
Le 2>/dev/null redirige les messages d’erreur vers le néant. Un grand classique. Si tu as vraiment besoin d’explorer ces dossiers protégés, préfixe ta commande avec sudo, mais fais-le en connaissance de cause.
Deuxième piège : les fichiers dont le nom contient des espaces. Si tu cherches un fichier « mon document.pdf », la commande suivante va planter :
find ~ -name "mon document.pdf" # Ça fonctionne grâce aux guillemets
Les guillemets autour du nom de fichier sont obligatoires dès qu’il y a un espace. Sans eux, Linux interprète « mon » et « document.pdf » comme deux arguments séparés. Et quand tu combines find avec xargs, ajoute -print0 d’un côté et -0 de l’autre pour gérer correctement les espaces :
find ~ -name "*.txt" -print0 | xargs -0 grep "motif"
Troisième piège classique : la casse. grep par défaut est sensible à la casse. « Erreur » et « erreur » sont deux choses différentes pour lui. Rajoute systématiquement -i quand tu n’es pas sûr de la casse du mot que tu cherches. Ça t’évitera de te gratter la tête pendant 10 minutes sur des résultats vides.
Pour les résultats trop longs qui rendent la lecture impossible, pipe vers less :
grep -r "error" /var/log/ | less
Tu peux alors défiler page par page avec les touches directionnelles, et quitter avec q. Bien plus confortable que regarder 500 lignes défiler.
3 cas pratiques de la vraie vie
Retrouver un document perdu par son nom
Tu sais que le fichier s’appelait quelque chose comme « rapport_2025 » mais tu ne te souviens plus du dossier exact :
find ~ -iname "*rapport*2025*"
Le -iname (avec i) ignore la casse, les astérisques servent de jokers. En quelques secondes, find liste tous les fichiers dont le nom contient ces deux mots, peu importe l’extension et la casse.
Repérer un fichier de configuration modifié récemment
Quelque chose a changé dans ton système et tu suspectes qu’un fichier de config a été modifié dans les dernières 48 heures :
find /etc -mtime -2 -name "*.conf"
La liste des fichiers de configuration modifiés dans les 2 derniers jours s’affiche. Si tu veux inclure tous types de fichiers, retire simplement le -name "*.conf".
Vérifier où un mot sensible apparaît dans des fichiers texte
Tu veux t’assurer qu’aucun de tes fichiers de config ne contient un mot de passe en clair. Attention, utilise sudo uniquement si tu as une bonne raison d’explorer des zones sensibles de ton système :
grep -r "password" ~/projets/ --include="*.txt" --include="*.conf" -l
Le -l liste uniquement les noms des fichiers concernés, sans afficher les lignes. Plus discret, et suffisant pour identifier les fichiers à corriger.
Ces manipulations font partie des réflexes qu’on développe avec les ls cd mkdir rm commandes linux — une fois qu’on maîtrise la navigation dans l’arborescence, on comprend beaucoup mieux où chercher et comment cibler ses recherches.
Bonnes pratiques et erreurs à éviter
Quelques règles simples qui t’éviteront beaucoup de frustration :
- Toujours mettre les motifs et noms de fichiers entre guillemets, surtout s’ils contiennent des espaces ou des caractères spéciaux
- Utiliser
-maxdepthavec find pour les recherches dans de gros répertoires, ça accélère les résultats - Préférer
2>/dev/nullpour cacher les erreurs de permission plutôt que de tout lancer en sudo - Tester d’abord sur un dossier réduit avant de lancer une recherche sur tout le système
Une dernière chose : grep et find ont chacun une page de manuel très bien documentée. man grep et man find dans ton terminal, c’est la référence ultime, et avec ce que tu viens de lire, tu auras maintenant les bases pour comprendre ce que tu y trouveras.
Si tu veux aller encore plus vite dans ton quotidien avec le terminal, combiner ces recherches avec les raccourcis clavier Linux peut changer ta façon de travailler. Et si tu veux solidifier toutes tes bases avant d’aller plus loin, le guide terminal linux debutant reste le meilleur point de départ pour reprendre les fondamentaux depuis le début.