"찾기"는 여러 "최대 깊이" 조건을 지원합니까?

"찾기"는 여러 "최대 깊이" 조건을 지원합니까?

find디렉토리를 기반으로 여러 s에 대한 검색을 수행하고 싶습니다 .maxdepth

가능합니까? 이것은 -maxdepth"전역"인 것 같지만 해결 방법이 있는지 궁금합니다.

(두 개의 개별 명령을 실행하는 것이 가능하다는 것을 알고 있지만 하나를 사용하면 더 빠르고 호출 코드가 더 간단해집니다.)

답변1

서로 다른 일치하는 경로 이름을 사용하여 이를 시뮬레이션할 수 있습니다 -prune. 예를 들어 /etc깊이 1과 /lib깊이 2를 일치시키려면 다음을 수행합니다.

find /etc /lib/ \
    \( -regex '/etc/[^/]*/.*'       -prune \) \
 -o \( -regex '/lib/[^/]*/[^/]*/.*' -prune \) \
 -o -print

나머지 파일과 디렉터리에 대해 인쇄하거나 다른 방식으로 작업하려면 마지막 줄을 추가할 때 주의해야 합니다.

답변2

-maxdepth아니요. 일련의 테스트 중 서로 다른 부분에 find서로 다른 옵션을 적용 할 수 없습니다 . 지적하신 대로 전역 옵션이므로 모든 테스트에 적용됩니다. 여러 -maxdepth옵션을 지정한 경우 마지막 옵션을 고려하여 전체 명령에 적용합니다.

관련 정보