AIX에서 동등한 최대 찾기 깊이

AIX에서 동등한 최대 찾기 깊이

하위 디렉터리에서 재귀적으로 검색하지 않고 마스크를 통해 특정 디렉터리의 모든 파일을 가져오려고 합니다. -maxdepth 0AIX에는 그러한 옵션이 없습니다.

들어본 적은 있지만 -prune아직 어떻게 작동하는지 이해하지 못합니다.

명령은 다음과 같아야 할 것 같아요

find dir \( ! -name dir -prune -type f \) -a -name filemask

하지만 작동하지 않습니다.

올바른 명령을 작성하고 그것이 어떻게 작동하는지 설명해 주실 수 있나요?

UPD

주문인 것 같아요

find dir ! -path dir -prune

내 경우에 사용할 수 있도록 모든 파일과 디렉터리를 인쇄 dir하지만 파일과 디렉터리는 인쇄하지 않습니다 .dir/*

답변1

당신이 원하는 것:

find dir/. ! -name . -prune -type f -name filemask

또는:

find dir ! -path dir -prune -type f -name filemask

filemaskdir에서 찾을 필요 없이 호출된 일반 파일을 찾으려면 dir.

의 경우 디렉터리 find dir ! -name dir -prune가 있으면 문제가 있는 것입니다.dir/dir

인수로 전달된 파일 외에는 호출되는 다른 파일이 발견되지 않으므로 이 dir/.방법을 사용하면 이 문제가 해결됩니다 .find.dir/.

-path방법은 파일의 파일 경로(이름만이 아님)를 확인하여 이 문제를 해결합니다. 이 경로는 -path dir일치 dir하지만 일치하지 않습니다 dir/dir(따라서 dir정리되지 않는 유일한 디렉터리가 됩니다). -path그러나 이전 버전의 AIX에서는 사용하지 못할 수도 있습니다.

보다 일반적으로 GNU 표준에 해당하는 내용은 -maxdepth n다음을 참조하세요.POSIX 조회를 특정 깊이로 제한하시겠습니까?

답변2

AIX에서는 옵션을 사용할 수 있습니다 -prune.

find ./* -prune

관련 정보