Aller au contenu
Administration Linux medium

Rechercher des fichiers sous Linux

6 min de lecture

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.

  • 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 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.

Fenêtre de terminal
find /etc -name "sshd_config"
Sortie
/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) :

Fenêtre de terminal
find /home -iname "readme.md"

L’option -type filtre par type d’objet :

ValeurSignification
fFichier ordinaire
dRépertoire
lLien symbolique

Exemple — trouver tous les répertoires nommés “config” :

Fenêtre de terminal
find /etc -type d -name "config"

L’option -size filtre par taille :

Fenêtre de terminal
# Fichiers de plus de 100 Mo
find /var/log -size +100M
# Fichiers de moins de 1 Ko
find /tmp -size -1k
SuffixeUnité
cOctets
kKilo-octets
MMéga-octets
GGiga-octets
Fenêtre de terminal
# Fichiers modifiés dans les 7 derniers jours
find /home -mtime -7
# Fichiers modifiés il y a plus de 30 jours
find /var/log -mtime +30

locate est beaucoup plus rapide que find car il interroge une base de données pré-construite au lieu de parcourir le disque.

Fenêtre de terminal
sudo apt install plocate

Mettre à jour la base de données (se fait aussi automatiquement chaque nuit) :

Fenêtre de terminal
sudo updatedb

Chercher un fichier :

Fenêtre de terminal
locate sshd_config
Sortie
/etc/ssh/sshd_config
/usr/share/man/man5/sshd_config.5.gz

Pour ignorer la casse :

Fenêtre de terminal
locate -i readme

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.

Fenêtre de terminal
grep "Port" /etc/ssh/sshd_config
Sortie
#Port 22
Fenêtre de terminal
grep -i "port" /etc/ssh/sshd_config
Fenêtre de terminal
grep "error" /var/log/*.log

Le nom du fichier apparaît devant chaque résultat :

Sortie
/var/log/auth.log:Apr 6 10:23:45 srv sshd[1234]: error: Could not load host key

L’option -r (récursif) parcourt tous les sous-répertoires :

Fenêtre de terminal
grep -r "AllowUsers" /etc/ssh/

L’option -n ajoute le numéro de ligne devant chaque résultat :

Fenêtre de terminal
grep -n "PermitRootLogin" /etc/ssh/sshd_config
Sortie
33:#PermitRootLogin prohibit-password

L’option -v affiche les lignes qui ne contiennent pas le motif — utile pour filtrer les commentaires :

Fenêtre de terminal
grep -v "^#" /etc/ssh/sshd_config | grep -v "^$"

Cette commande retire les lignes commençant par # (commentaires) et les lignes vides.

BesoinCommande
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 datefind avec -size, -type, -mtime
Chercher du texte dans un fichiergrep "motif" fichier
Chercher du texte dans tout un dossiergrep -r "motif" /chemin/
ProblèmeCause probableSolution
find : trop de résultatsRecherche trop largePréciser le chemin de départ ou ajouter -name
find : Permission deniedRépertoires protégésAjouter sudo ou rediriger les erreurs : 2>/dev/null
locate : fichier récent introuvableBase pas à joursudo updatedb
locate : commande introuvablePaquet non installéInstaller plocate
grep : aucun résultatCasse différenteAjouter -i pour ignorer la casse
grep : Is a directoryVous visez un dossier, pas un fichierAjouter -r pour la récursion
  • find fouille le disque en temps réel — lent mais toujours à jour et très flexible.
  • locate interroge un index — rapide mais potentiellement décalé.
  • grep cherche du texte dans les fichiers, pas le nom des fichiers.
  • Combinez-les : find pour localiser, grep pour inspecter le contenu.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn