[grep] 숨겨진 파일을 grep하려면 어떻게해야합니까?

Git 저장소를 검색 중이며 .git폴더 를 포함하고 싶습니다 .

grep 실행하면이 폴더를 포함하지 않습니다.

grep -r search *

이 폴더를 포함하는 grep 명령은 무엇입니까?



답변

수행중인 작업에 대한 더 나은 대안으로이 게시물 끝에있는 솔루션을 참조하십시오.

숨김 파일을 명시 적으로 포함 할 수 있습니다 (디렉토리도 파일 임).

grep -r search * .*

*숨겨진 파일을 제외한 모든 파일과 .*일치하며 숨겨진 파일 만 일치합니다. 그러나 주어진 디렉토리에 숨겨진 파일이 없거나 숨겨진 파일이 없으면 실패합니다. 당신은 물론 명시 적으로 추가 할 수 있습니다 .git대신 .*.

그러나 주어진 디렉토리에서 단순히 검색하려면 다음과 같이하십시오.

grep -r search .

.숨겨지지 않은 파일과 숨겨진 파일을 모두 포함하는 현재 경로와 일치합니다.


답변

방금이 문제가 발생했으며 @bitmask의 답변에 따라 @sehe가 지적한 문제를 피하기 위해 간단한 수정이 있습니다.

grep -r search_string * .[^.]*


답변

아마도 다음과 같은 완전한 솔루션을 위해 “grep”과 “find”명령을 결합하는 것을 선호 할 것입니다.

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

이 명령은 숨겨진 파일 또는 디렉토리에서 문자열 “search”를 검색하고 다음 출력 형식과 일치하는 모든 파일을 나열합니다.

파일 경로 : 줄 번호 : 일치하는 줄

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


답변

현재 디렉터리를 검색한다고 가정하고이 방법을 사용할 수 있습니다 (그렇지 않으면.를 원하는 디렉터리로 대체).

find . -type f | xargs grep search

또는 최상위 수준에서 검색하려는 경우 (이를 시도하는 경우 테스트하는 것이 더 빠릅니다) :

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

업데이트 : Scott의 의견에 따라 예제를 수정했습니다. 나는 또한 “-type f”를 추가했습니다.


답변

현재 위치에서 모든 숨겨진 파일 및 디렉토리 내에서만 검색하려면 :

find . -name ".*" -exec grep -rs search {} \;

모든 숨겨진 파일 만 :

find . -name ".*" -type f -exec grep -s search {} \;

모든 숨겨진 디렉토리 만 :

find . -name ".*" -type d -exec grep -rs search {} \;


답변

다른 모든 답변이 더 좋습니다. 이것은 기억하기 쉬울 것입니다.

find . -type f | xargs grep search

파일 (숨김 포함) 만 찾고 각 파일을 greps합니다.


답변

특정 폴더 내에서만 찾으려면 다음을 사용할 수 있습니다.

ls -al | grep " \."

grep을 나열하고 파이프하는 매우 간단한 명령입니다.