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 :
find chemin options
Pour rechercher un fichier par son nom :
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 :
find ~ -name preferences.txt 2>/dev/null
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)
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 "|" :
find ~/Code/MonProjet -type f -name *.blade.php 2>/dev/null | xargs grep 'class="important"'
find permet également de rechercher les fichiers modifiés depuis 24h :
find ~ -mtime -1
ou depuis 5 minutes :
find ~ -mmin -5
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 :
find . -name *.json -not -path "./vendor/*"
▼Publicité