제외된 디렉터리 찾기

제외된 디렉터리 찾기

저는 Linux(Ubuntu)를 사용하고 있으며 다음을 수행할 때 특정 디렉터리(예: .hg)를 제외하고 싶습니다.

find | less  

목록에서 .hg 디렉토리를 제외하기 위해 다음을 시도했지만 작동하지 않는 것 같습니다.

find -type d \( ! -iname \.hg \)
find -type d \( ! -name \.hg \)
find -type d \( ! -iname .hg \)

.directoryfind 명령에서 제외하는 방법

답변1

우수한유사한 find솔루션 연구도움이 되는 설명을 찾았습니다sh에서 "find"의 "-prune" 옵션을 사용하는 방법은 무엇입니까?통과로렌스 곤살베스.

다음과 같은 것을 사용할 수 있습니다.

find . \( -type d -name .hg -prune \) -o \( -type f -name "foo" -print \)

또는 (이름 없음)

find . \( -type d -name .hg -prune \) -o \( -type f -print \)

(이스케이프 처리된) 괄호는 OR( )의 왼쪽과 오른쪽에 \(테스트 \)( typename)와 해당 연산( 각각 prune및 )을 결합합니다 .print-o

연결보다 우선순위가 낮 으므로 -o원할 경우 괄호를 생략할 수 있습니다. 많은 find구현에서는 마지막 -print.

find . -type d -name .hg -prune -o -type f -name "foo" -print

답변2

구경하다 ack:http://betterthangrep.com/

적절한 기본 제외 폴더 세트를 갖는 것 외에도(예: .hg는 기본적으로 제외됨) 새 폴더를 제외하는 것도 쉽습니다.

ack --ignore-dir=.directory search_term

파일 목록을 찾는 사용 사례로 다시 가져오려면 -f다음과 같이 이 옵션을 사용할 수 있습니다.

ack -f --ignore-dir=.directory

복잡한 검색/찾기 명령 작성에서 간단한 ack 명령 작성으로 전환했습니다.

팁: .ackrc 파일에 일반적인 명령줄 옵션(예: 제외된 폴더)을 배치하세요.

답변3

당신은 시도 할 수 있습니다

find \( ! -regex '.*/\.directory\(\|/.*\)' \)

관련 정보