2016-11-13 4 views
2
내가 최근 ACK 발견

ack -ir --ignore-dir={node_modules,dist,.git} <search-term> 대부분의 것들에 대한 훌륭한 작동하지만를 node_modules이ACK는 | 그렙는 | 패턴/디렉토리 node_modules 폴더/무시 이것 저것 특별는

---node_modules/ 
---------------project1/ 
-----------------------node_modules/ 
---------------project2/ 
-----------------------node_modules/ 

내가 "루트"아래에있는 모든 파일을 검색하고 싶습니다 node_modules를 제거하고 모든 내부 모듈을 제외합니다.

참고 : 루트 node_modules 폴더 아래 find . -type f | ack -v 'node_modules|.git|dist'을 실행하면 적절한 파일 목록이 표시됩니다. 이것은 find .이 상대 경로를 제공하기 때문에 발생합니다. 이 목록을 퍽으로 먹일 방법이 있습니까?

답변

3
ack -i <search-term> ./node_modules/* 

원하는대로해야합니다. 파일 및 폴더도 숨기려면 shopt -s dotglob (Bash라고 가정)을 먼저 설정하십시오.


배경 정보 :

ack는 일반적으로 내장 을 검색하지 않으려는 파일을 무시하고 많은 규칙이 있습니다. (당신이 명시를 만들기 위해 -r/-R/--recursive을 추가 할 수 있지만, 기본적으로 ack 검색 재귀 적으로) 이상 버전 2.14으로

은 계층 구조의 어떤 수준에서 .gitnode_modules 이름 디렉토리가 포함되어 있습니다.
기본적으로 무시되는 디렉터리/파일의 전체 목록을 보려면 ack --dump을 실행하십시오. node_modules에 대한 무시 규칙은 그 명시 적으로 전달 항목에 대한 바이 패스,./node_modules 내부에 실제 항목 목록에 패턴 ./node_modules/*을 확장 수 있도록
(경로명 확장) 글 로빙 를 사용하여

.