디렉토리에서 일부 파일을 찾으려고 합니다. 기본적으로 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
옵션은 일부 버전에서는 확장이지만 find
Solaris 버전에서는 그렇지 않습니다. 재귀 없이 디렉터리 작업 을 위해 표준 옵션을 사용하는 find
방법이 있습니다 . -prune
즉, 하위 디렉터리에 사용하고 최상위 디렉터리는 제외하는 것입니다. 최상위 디렉토리를 일치시키는 유일한 방법은 이름을 기준으로 하는 것이므로 이름을 정렬하십시오 .
(하위 디렉토리의 이름은 아님).
find /directory/to/traverse/. -name . -o \
-type d -prune -o \
-name '*.log' -print