112 votes

Comment puis-je grep fichiers cachés ?

Je recherche dans un dépôt Git et je souhaite inclure le dossier .git.

grep n'inclut pas ce dossier si j'exécute

grep -r search *

Qu'est-ce qu'une commande grep pour inclure ce dossier ?

16voto

insaner Points 1395

Je viens de rencontrer ce problème, et sur la base de la réponse de @bitmask, voici ma simple modification pour éviter le problème signalé par @sehe :

grep -r search_string * .[^.]*

5voto

Olvathar Points 300

Peut-être préférez-vous combiner "grep" avec la commande "find" pour une solution complète comme :

find . -exec grep -Hn search {} \;

Cette commande recherchera à l'intérieur des fichiers cachés ou des répertoires la chaîne "search" et listera tous les fichiers ayant une coïncidence avec ce format de sortie :

Chemin du fichier : Numéro de ligne :ligne avec coïncidence

./foo/bar:42:search line
./foo/.bar:42:search line
./.foo/bar:42:search line
./.foo/.bar:42:search line

2voto

Alan Points 170

Vous pouvez utiliser cette approche, en supposant que vous recherchez le répertoire actuel (sinon remplacez . par le répertoire souhaité) :

find . -type f | xargs grep search

ou si vous voulez juste faire une recherche au niveau supérieur (ce qui est plus rapide à tester si vous les essayez) :

find . -type f -maxdepth 1 | xargs grep search

MISE À JOUR : J'ai modifié les exemples en réponse aux commentaires de Scott. J'ai aussi ajouté "-type f".

2voto

mchid Points 975

Pour éviter de faire correspondre . .. qui ne sont pas des fichiers cachés, vous pouvez utiliser grep ls -A comme dans cet exemple :

ls -A | grep "^\."

^\. indique que le premier caractère doit être .

L'option -A ou --almost-all exclut les résultats . .. de sorte que seuls les fichiers et répertoires cachés sont appariés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X