Trouver une chaine dans des fichiers
Voici quelques commandes bash qui permettre de trouver une chaine contenue dans les fichiers d'un répertoire (utile par exemple pour trouver quels fichiers ont été infectés par le virus Gumblar :D)
La solution la plus simple est rgrep, mais qui n'est pas installé par défaut.
rgrep 'chaine' /arborescence
Sinon, vous avez la solution avec grep.
Cette méthode n'affiche que le fichier concerné
grep -lir "chaine" /arborescence
Cette méthode affiche le fichier concerné, la ligne ou la chaine à été trouvée, et la chaine trouvée :
grep -oHnr "chaine" /arborescence
Sinon, la méthode indiquée par Arkezis, toujours avec grep :
grep "chaine" **/*
Ou la solution avec find :
find /arborescence -name "*extension_du_fichier" -exec grep -l "chaine" {} \;Enfin, limiter la recherche à certaines extensions :
for i in `find /arborescence -type d`; do grep "chaine" $i/*.{txt,log}; done 2>/dev/nullParfois très utile ! :)