Si vous souhaitez trouver un texte spécifique dans un répertoire donné de manière récursive, la meilleure façon de procéder est d'utiliser la commande grep et un motif.
C'est comme ça :
grep -ri something *
-r ou -R est récursif,
-i pour ignorer le cas
-w signifie que le mot entier doit être pris en compte.
-l (L minuscule) peut être ajouté pour ne donner que le nom des fichiers correspondants.
En outre, les drapeaux -exclude, -include, -exclude-dir peuvent être utilisés pour une recherche efficace.
La recherche ne portera que sur les fichiers portant l'extension .c ou .h :
grep –include=\*.{c,h} -rnw '/path/to/somewhere/' -e "pattern"
Cela exclura la recherche de tous les fichiers se terminant par l'extension .o :
grep –exclude=*.o -rnw '/path/to/somewhere/' -e "pattern"
Pour les répertoires, il est possible d'exclure un ou plusieurs répertoires particuliers grâce au paramètre -exclude-dir.
grep –exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/somewhere/' -e "pattern"
Pour plus d'options, voir man grep.