Vous savez qu'un fichier existe quelque part sur le serveur, mais impossible de le retrouver. Sous Linux, trois commandes répondent à ce besoin : find fouille l'arborescence en temps réel, locate interroge un index pré-construit pour aller plus vite, et grep cherche du texte à l'intérieur des fichiers. Ce guide vous montre les usages de base de chacune.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Trouver un fichier par nom avec
find - Filtrer par type, taille ou date de modification
- Rechercher instantanément avec
locate - Chercher du texte dans un ou plusieurs fichiers avec
grep - Choisir la bonne commande selon la situation
find, recherche en temps réel
Section intitulée « find, recherche en temps réel »find parcourt l'arborescence à partir d'un point de départ et applique les critères que vous lui donnez. C'est la commande la plus puissante mais aussi la plus lente sur de gros systèmes de fichiers.
Chercher par nom
Section intitulée « Chercher par nom »Vous donnez à find un répertoire de départ, puis le critère -name
avec le nom du fichier cherché :
find /etc -name "sshd_config"/etc/ssh/sshd_config/etc: répertoire de départ de la recherche-name: cherche une correspondance exacte sur le nom
Pour ignorer la casse (majuscules/minuscules) :
find /home -iname "readme.md"Chercher par type
Section intitulée « Chercher par type »L'option -type filtre par type d'objet :
| Valeur | Signification |
|---|---|
f | Fichier ordinaire |
d | Répertoire |
l | Lien symbolique |
Exemple, trouver tous les répertoires nommés "config" :
find /etc -type d -name "config"Chercher par taille
Section intitulée « Chercher par taille »L'option -size filtre par taille :
# Fichiers de plus de 100 Mofind /var/log -size +100M
# Fichiers de moins de 1 Kofind /tmp -size -1k| Suffixe | Unité |
|---|---|
c | Octets |
k | Kilo-octets |
M | Méga-octets |
G | Giga-octets |
Chercher par date de modification
Section intitulée « Chercher par date de modification »L'option -mtime compte en jours : -7 veut dire « modifié il y a
moins de 7 jours », +30 « il y a plus de 30 jours ». C'est le critère du
nettoyage des vieux journaux :
# Fichiers modifiés dans les 7 derniers joursfind /home -mtime -7
# Fichiers modifiés il y a plus de 30 joursfind /var/log -mtime +30locate, recherche instantanée par index
Section intitulée « locate, recherche instantanée par index »locate est beaucoup plus rapide que find car il interroge une base de données pré-construite au lieu de parcourir le disque.
Installer et utiliser
Section intitulée « Installer et utiliser »sudo apt install plocate# c'est bien plocate qui est fourni, dans le dépôt baseossudo dnf install plocatesudo updatedbsudo dnf install plocateMettre à jour la base de données (se fait aussi automatiquement chaque nuit) :
sudo updatedbChercher un fichier :
locate sshd_config/etc/ssh/sshd_config/usr/share/man/man5/sshd_config.5.gzPour ignorer la casse :
locate -i readmegrep, chercher du texte dans les fichiers
Section intitulée « grep, chercher du texte dans les fichiers »grep (Global Regular Expression Print) cherche une chaîne de texte à l'intérieur des fichiers. Là où find et locate recherchent par nom de fichier, grep recherche par contenu.
Chercher un mot dans un fichier
Section intitulée « Chercher un mot dans un fichier »grep affiche les lignes entières qui contiennent le motif, et non le seul mot trouvé.
grep "Port" /etc/ssh/sshd_config#Port 22Ignorer la casse
Section intitulée « Ignorer la casse »-i rend la recherche insensible à la casse, ce qui évite de manquer Error en cherchant error.
grep -i "port" /etc/ssh/sshd_configChercher dans plusieurs fichiers
Section intitulée « Chercher dans plusieurs fichiers »grep "error" /var/log/*.logLe nom du fichier apparaît devant chaque résultat :
/var/log/auth.log:Apr 6 10:23:45 srv sshd[1234]: error: Could not load host keyChercher récursivement dans un dossier
Section intitulée « Chercher récursivement dans un dossier »L'option -r (récursif) parcourt tous les sous-répertoires :
grep -r "AllowUsers" /etc/ssh/Afficher le numéro de ligne
Section intitulée « Afficher le numéro de ligne »L'option -n ajoute le numéro de ligne devant chaque résultat :
grep -n "PermitRootLogin" /etc/ssh/sshd_config33:#PermitRootLogin prohibit-passwordInverser la recherche
Section intitulée « Inverser la recherche »L'option -v affiche les lignes qui ne contiennent pas le motif, utile pour filtrer les commentaires :
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"Cette commande retire les lignes commençant par # (commentaires) et les lignes vides.
Récapitulatif : quelle commande choisir ?
Section intitulée « Récapitulatif : quelle commande choisir ? »La question à se poser d'abord est ce que vous savez : le nom du fichier, ses caractéristiques, ou un mot qu'il contient. Le tableau associe chaque cas à sa commande.
| Besoin | Commande |
|---|---|
| Trouver un fichier par nom (résultat fiable) | find /chemin -name "nom" |
| Trouver un fichier par nom (résultat rapide) | locate nom |
| Filtrer par taille, type ou date | find avec -size, -type, -mtime |
| Chercher du texte dans un fichier | grep "motif" fichier |
| Chercher du texte dans tout un dossier | grep -r "motif" /chemin/ |
Dépannage
Section intitulée « Dépannage »La plupart des recherches ratées viennent d'une portée trop large ou trop étroite, ou de la casse. Le tableau les classe par symptôme observé.
| Problème | Cause probable | Solution |
|---|---|---|
find : trop de résultats | Recherche trop large | Préciser le chemin de départ ou ajouter -name |
find : Permission denied | Répertoires protégés | Ajouter sudo ou rediriger les erreurs : 2>/dev/null |
locate : fichier récent introuvable | Base pas à jour | sudo updatedb |
locate : commande introuvable | Paquet non installé | Installer plocate |
grep : aucun résultat | Casse différente | Ajouter -i pour ignorer la casse |
grep : Is a directory | Vous visez un dossier, pas un fichier | Ajouter -r pour la récursion |
Mettre en pratique
Section intitulée « Mettre en pratique »Entraînez-vous à localiser des fichiers avec find par nom, taille et permissions, la compétence de recherche attendue au niveau fondamental.
À retenir
Section intitulée « À retenir »findfouille le disque en temps réel, lent mais toujours à jour et très flexible.locateinterroge un index, rapide mais potentiellement décalé.grepcherche du texte dans les fichiers, pas le nom des fichiers.- Combinez-les :
findpour localiser,greppour inspecter le contenu.
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
Informations
- Le chronomètre démarre au clic sur Démarrer
- Questions à choix multiples, vrai/faux et réponses courtes
- Vous pouvez naviguer entre les questions
- Les résultats détaillés sont affichés à la fin
Lance le quiz et démarre le chronomètre
Vérification
(0/0)Score par domaine
Un domaine regroupe plusieurs guides et reçoit plusieurs questions : son score est plus fiable qu'un score par thème, qui porte souvent sur une seule question.
Bilan
Points forts
Aucun sujet réussi à 80 % sur au moins deux questions pour l’instant.
Points faibles
Aucun sujet sous le seuil de réussite.
À faire ensuite
Des indices pour retenter votre chance ?
Continuer le cours : Filtrer et transformer du texte
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications