Je recherche dans un référentiel Git et je souhaite inclure le .git
dossier.
grep
n'inclut pas ce dossier si je cours
grep -r search *
Quelle serait une commande grep pour inclure ce dossier?
la source
Je recherche dans un référentiel Git et je souhaite inclure le .git
dossier.
grep
n'inclut pas ce dossier si je cours
grep -r search *
Quelle serait une commande grep pour inclure ce dossier?
Veuillez vous référer à la solution à la fin de cet article comme une meilleure alternative à ce que vous faites.
Vous pouvez explicitement inclure des fichiers cachés (un répertoire est également un fichier).
grep -r search * .*
Le *
correspondra à tous les fichiers sauf ceux cachés et .*
correspondra uniquement aux fichiers cachés. Cependant, cela échouera s'il n'y a aucun fichier non caché ou aucun fichier caché dans un répertoire donné. Vous pouvez bien sûr ajouter explicitement à la .git
place de .*
.
Cependant, si vous souhaitez simplement rechercher dans un répertoire donné, procédez comme suit:
grep -r search .
Le .
correspondra au chemin actuel, qui comprendra à la fois les fichiers non cachés et cachés.
.*
comprendra le répertoire parent (parce que les..
matchs)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:
la source
sudo grep -r ANDROID_HOME * .[^.]*
qu'est-ce que je fais de mal ici?Peut-être préférerez-vous combiner "grep" avec la commande "find" pour une solution complète comme:
Cette commande recherchera dans les fichiers ou répertoires cachés la chaîne "recherche" et listera tous les fichiers avec une coïncidence avec ce format de sortie:
Chemin du fichier: Numéro de ligne: ligne avec coïncidence
la source
Vous pouvez utiliser cette approche, en supposant que vous recherchez le répertoire actuel (sinon remplacez. Par le répertoire souhaité):
ou si vous souhaitez simplement rechercher au niveau supérieur (ce qui est plus rapide à tester si vous les essayez):
MISE À JOUR: J'ai modifié les exemples en réponse aux commentaires de Scott. J'ai également ajouté "-type f".
la source
~
est le répertoire personnel de l'utilisateur. La question ne concernait pas le répertoire personnel de l'utilisateur, la réponse ne devrait donc pas être mentionnée~
. (2) Dans unefind
commande,-name '*'
est un no-op (c'est-à-dire, cela ne sert à rien).Pour rechercher UNIQUEMENT tous les fichiers et répertoires cachés à partir de votre emplacement actuel:
UNIQUEMENT tous les fichiers cachés:
UNIQUEMENT tous les répertoires cachés:
la source
Toutes les autres réponses sont meilleures. Celui-ci pourrait être facile à retenir:
Il ne trouve que les fichiers (y compris cachés) et greps chaque fichier.
la source
Pour rechercher uniquement dans un certain dossier, vous pouvez utiliser:
C'est une commande très simple pour lister et rediriger vers grep.
la source
En plus de la suggestion de Tyler, voici la commande pour grep tous les fichiers et dossiers de manière récursive, y compris les fichiers cachés
la source
Pour empêcher la correspondance
.
et..
qui ne sont pas des fichiers cachés, vous pouvez utilisergrep
avecls -A
comme dans cet exemple:^\.
déclare que le premier caractère doit être.
La
-A
ou--almost-all
option exclut les résultats.
et..
donc qui sont adaptés les fichiers et répertoires cachés uniquement.la source
Vous pouvez également rechercher des types spécifiques de fichiers cachés, comme les fichiers de répertoire cachés:
Cela peut fonctionner mieux que certaines des autres options. Les autres options qui ont fonctionné peuvent être trop lentes.
la source