솔라리스의 깊이/가지치기와 동일합니까?

솔라리스의 깊이/가지치기와 동일합니까?

디렉토리에서 일부 파일을 찾으려고 합니다. 기본적으로 Find는 command내가 지정한 디렉터리와 해당 하위 디렉터리를 검색합니다.

사용해 보았 depth/maxdepth으나 prune이 문제를 해결하는 데 아무런 도움이 되지 않았습니다. Solaris에서 깊이/가지치기를 사용하는 올바른 방법을 지적할 수 있는 사람이 있습니까?

내 코드는 다음과 같습니다

find file_path -depth 1 -name '*.log'

다음 오류가 발생합니다.

find: bad option 1
find: [-H | -L] path-list predicate-list

답변1

모호하게 유사한 이름을 가진 두 가지 관련 없는 옵션을 혼동하고 있습니다.

  • -depth어떤 주장도 받아들여지지 않았습니다. 존재하는 경우 find디렉터리 자체를 처리하기 전에 디렉터리의 내용을 처리하도록 지시합니다 .
  • -maxdepth N(여기서 N은 정수) 재귀를 N 수준의 하위 디렉터리로 제한합니다.

-maxdepth옵션은 일부 버전에서는 확장이지만 findSolaris 버전에서는 그렇지 않습니다. 재귀 없이 디렉터리 작업 을 위해 표준 옵션을 사용하는 find방법이 있습니다 . -prune즉, 하위 디렉터리에 사용하고 최상위 디렉터리는 제외하는 것입니다. 최상위 디렉토리를 일치시키는 유일한 방법은 이름을 기준으로 하는 것이므로 이름을 정렬하십시오 .(하위 디렉토리의 이름은 아님).

find /directory/to/traverse/. -name . -o \
                              -type d -prune -o \
                              -name '*.log' -print

관련 정보