Sto cercando attraverso un repository Git e vorrei includere la cartella .git
.Come posso grep i file nascosti?
grep
non include questa cartella se corro
grep -r search *
quello che sarebbe un comando grep per includere questa cartella?
Sto cercando attraverso un repository Git e vorrei includere la cartella .git
.Come posso grep i file nascosti?
grep
non include questa cartella se corro
grep -r search *
quello che sarebbe un comando grep per includere questa cartella?
Si prega di fare riferimento alla soluzione alla fine di questo post come alternativa migliore a quello che stai facendo.
È possibile includere in modo esplicito i file nascosti (una directory è anche un file).
grep -r search * .*
Il *
corrisponderà tutti i file tranne quelli nascosti e .*
corrisponderà solo i file nascosti. Tuttavia, questo non funzionerà se non ci sono file non nascosti o file nascosti in una determinata directory. Ovviamente è possibile aggiungere esplicitamente .git
anziché .*
.
Tuttavia, se si vuole semplicemente cercare in una determinata directory, fare in questo modo:
grep -r search .
Il .
corrisponderà il percorso della corrente, che includerà sia i file non nascosti e nascoste.
Forse si preferisce unire "grep" con "trovare" il comando per soluzioni complete come
find . -exec grep -Hn search {} \;
Questo comando cercherà file o directory all'interno nascoste per la stringa "ricerca" ed elencare qualsiasi file con una coincidenza con questo formato di output:
File percorso: numero di riga: linea con coincidenza
./foo/bar:42:search line
./foo/.bar:42:search line
./.foo/bar:42:search line
./.foo/.bar:42:search line
si consiglia di utilizzare questo approccio:
find ~ -name '*' | xargs grep search
o se volete semplicemente cercare al livello superiore (che è più rapido per verificare se si sta cercando questi fuori):
find ~ -maxdepth 1 -name '*' | xargs grep search
Tutte le altre risposte sono meglio.Questo potrebbe essere facile da ricordare:
find . -type f | xargs grep search
trova solo file (comprese nascosto) e grep ogni file
Ho appena incontrato questo problema, e sulla base di @ maschera di bit risposta, ecco la mia semplice modifica evitare il problema segnalato da @sehe:
grep -r search_string * .[^.]*
non ottengo alcun risultato usando questo: 'sudo grep -r ANDROID_HOME *. [^.] *' Che cosa sto facendo male qui? – messerbill
@messerbill dove stai facendo la ricerca? – insaner
per cercare nel giro di soli tutti i file nascosti e le directory dalla posizione corrente:
find . -name ".*" -exec grep -rs search {} \;
solo tutti i file nascosti:
find . -name ".*" -type f -exec grep -s search {} \;
SOLO tutte le directory nascoste: (. Grep -r ricerca * *)
find . -name ".*" -type d -exec grep -rs search {} \;
Il primo approccio ha funzionato per me. Il secondo approccio (grep -r search.) Non ha trovato la stringa. Ho trovato risultati simili quando ho omesso "-r" e ho cercato solo nella directory di primo livello. Sto usando GNU grep 2.6.3. – Alan
@Alan: È strano. Lo uso regolarmente. Lo hai provato nella stessa directory? – bitmask
Sì, l'ho fatto. A proposito, i risultati sono gli stessi sia che io usi tcsh o bash. È un sistema Debian 5 a 64 bit, per quello che vale. – Alan