Formation PUB110 : Linux, 2018 Le système de fichiers

3.2 Rechercher un fichier (find)


Savoir rechercher efficacement un fichier sous Linux est certainement le meilleur gagne-temps pour un programmeur.

La commande find vous permettra d'effectuer différentes recherches. Elle utilise la syntaxe suivante :

Syntaxe de commande Linux

find chemin options

Pour rechercher un fichier par son nom :

Commande Linux

find / -name logo.png

Pour ne pas voir les messages "Permission denied", on redirige la sortie d'erreur standard (stderr, soit la sortie no 2) vers le néant :

Commande Linux

find ~ -name preferences.txt 2>/dev/null

▼Publicité Le texte se poursuit plus bas

Rechercher une chaîne de caractères dans un fichier

Pour rechercher les fichiers contenant une chaîne de caractère précise, on combine find avec grep. Puisque cette commande est plus longue à exécuter, on prendra soin de limiter la recherche aux fichiers réguliers (-type f) pour éviter de traiter les fichiers spéciaux (ex : block, named pipe, symbolic link, socket)

Commande Linux

find ~/Code/MonProjet -type f -name *.blade.php | xargs grep 'class="important"'

Ici encore, on peut rediriger la sortie d'erreur standard. Il faut prendre soin d'ajouter l'instruction avant le "|" :

Commande Linux

find ~/Code/MonProjet -type f -name *.blade.php 2>/dev/null | xargs grep 'class="important"'

Rechercher les fichiers modifiés depuis X temps

find permet également de rechercher les fichiers modifiés depuis 24h :

Commande Linux

find ~ -mtime -1

ou depuis 5 minutes :

Commande Linux

find ~ -mmin -5

Exclure un dossier de la recherche

Pour rechercher les fichiers dont le nom se termine par .json dans le dossier courant et ses sous dossiers à l'exception du sous-dossier vendor :

Commande Linux

find . -name *.json -not -path "./vendor/*"

 

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Par Christiane Lagacé
Dernière révision le 14 septembre 2021
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre