Linux에서 특정 패턴과 일치하는 모든 디렉토리 및 하위 디렉토리를 어떻게 찾거나 제외합니까?


17

Linux find 명령을 사용하여 경로에 .svn (Subversion 숨겨진 폴더)이없는 모든 디렉토리와 하위 디렉토리를 찾으려고합니다. 실제 .svn 디렉토리 자체 만 제외하고 하위 디렉토리는 제외시킬 수 있습니다.

내가 지금하고있는 일은 다음과 같습니다.

find . -type d \! -iname '*.svn*'

나는 또한 시도했다 :

find . -type d \! iname '.svn' \! iname '.svn/*'

참고로, 찾기 패턴을 사용하려고하므로 하위 버전 숨겨진 폴더 및 하위 디렉토리를 제외한 내 저장소의 모든 디렉토리에 일부 하위 버전 속성을 적용 할 수 있습니다 (find 명령에서 반환 된 디렉토리에 exec 명령 적용) ) ..

티아

답변:


25
find . -type d -not \( -name .svn -prune \)

그들이 모두 작동하는 것처럼 보이지만 나는 이것과 함께 갈 것입니다.
Jason Down

이전에 찾기에서 -prune을 사용했지만 그 \ (... \) 트릭을 보지 못했습니다. 감사.
Rory

node-js를 줄 계산에서 제외하려는 node.js / express 앱에서 이것이 어떻게 작동하는지 알 수 있습니까? 나는 시도 find . -name '*.js' -not \( -name 'node_modules' -prune \) | xargs wc -l ... 성공없이
파쇄

Node.js / Express 앱에 관한 @shredding과 find의 결과에서 node_modules 디렉토리를 제외하면 @ 작동합니다 : find. -name ' .test.js'-not (-wholename '* node_modules ') ... 실행하려는 테스트에 ".test.js"접미사가 붙은 경우
mysterlune

이없이 작동 -type d합니까? 모든 파일을 검색하고 ".git"디렉토리를 재귀 적으로 제외하는 것을 좋아합니다
James Mitch

6

간단히

find . -type d |  grep -v '.svn'

찾기 조치를 사용할 수있는 능력을 상실합니다.
David Pashley 2016 년

예, 그러나 대신 멋진 작은 sh 루프는 어떻습니까? :) 파일의 find . -type d | grep -v '.svn'; 무엇이든 반향하십시오. 완료
wazoox 2016 년

6

[정보] 어떤 -path옵션을 찾는 방법은?

find . -type d ! -path '*.svn*'

1
마감 시세가 누락되었습니다. 와일드 카드가 너무 욕심 일 수있는 외부 기회가 있습니다.
Dan Carley 2016 년

2

찾기 . -path './tmp'-prune -o .......


2

당신은 사용할 수 있습니다 :

find . -type d -not -wholename '*.svn*' 

답의 앞쪽에서 *를 제거했습니다 ...를 찾아야합니다. -type d -not -wholename ' /.svn/ '(전체 이름 squote 별표 슬래시 도트 svn 슬래시 별표 squote)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.