디렉토리를 제외한 모든 항목 찾기

디렉토리를 제외한 모든 항목 찾기

찾기 실행 중에 디렉토리를 무시하는 방법은 무엇입니까? 예를 들어 다음과 같은 것이 있습니다.

.
├── fold
│   └── something
└── something

접어/뭔가- 목차 . /무엇- 문서

나는 그렇습니다 find . -name "something"그리고 나는 그것을 무시하지 않을 것입니다접어/뭔가디렉토리이기 때문에

답변1

로 테스트합니다 -type d. 로 테스트의 의미를 바꿉니다 !.

그래서:

find . -name something ! -type d

something현재 디렉토리 또는 그 아래에서 호출된 모든 것을 찾을 수 있지만 아무것도 보고하지 않습니다.목차부르다 something.

구체적으로 무시 하려면 ./fold/something부정적인 -path테스트를 사용하십시오.

find . -name something ! -path ./fold/something

테스트에 사용하는 경로 이름은 -path최상위 검색 경로( ) .의 전체 경로와 일치 해야 합니다.

find이름이 지정된 디렉터리에 대한 보고를 중지 something하고 해당 디렉터리에 들어가지 못하게 하려면 다음을 사용 하세요 -prune.

find . \
    -name something -type d -prune -o \
    -name something -print

또는 동등하게,

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

그러면 먼저 something검색 트리에서 호출되어 발견된 디렉터리가 모두 정리됩니다. 현재 확인 중인 경로가 이라는 디렉터리 something가 아니라 이라는 다른 디렉터리 인 경우 something해당 경로를 인쇄합니다. 파일 유형에 관계없이( 검색 트리에서 제거되었기 때문에) something아래에서 호출된 항목은 찾지 않습니다 ../fold/something./fold/something

관련 정보