동시에 여러 디렉토리를 재귀적으로 탐색하는 방법은 무엇입니까?

동시에 여러 디렉토리를 재귀적으로 탐색하는 방법은 무엇입니까?

나는 grep -r주어진 디렉토리의 파일에서 문자열의 발생 횟수를 찾고 있었습니다.

$ grep -r "string" 애플리케이션/자산/자바스크립트
> app/assets/javascripts/my_file.js: 이 줄에는 내

하지만 재귀적으로 검색하고 싶다면 어떻게 해야 할까요?여러 하위 디렉터리내 현재 디렉토리? 내가 생각할 수 있는 유일한 방법은 grep을 두 번 실행하는 것입니다.

$ grep -r "string" 애플리케이션/자산/자바스크립트
> app/assets/javascripts/my_file.js: 이 줄에는 ""
$ grep -r "문자열" 사양/자바스크립트
> 앱/자산/javascripts/my_file.js:""라는 메시지도 여기에 표시됩니다.

위의 두 grep명령을 한 줄로 어떻게 결합할 수 있나요? 나는 에 있는 모든 파일을 검색하고 싶지 않으며 .--exclude-dir아래에 다른 디렉터리가 너무 많아서 .명시적으로 제외할 수 없기 때문에 이는 비실용적입니다.

가능합니까?

답변1

다음에서 여러 디렉터리를 지정할 수 있습니다 grep.

grep -r "string" app/assets/javascripts spec/javascripts

또는 때로는 파악하려는 파일을 나열한 find다음 파악하는 것이 더 유용할 때도 있습니다.

find app/assets/javascripts spec/javascripts -type f -print0 |
  xargs -0 grep "string"

또는

find app/assets/javascripts spec/javascripts -type f -exec grep -H "string" {} +

관련 정보