특정 하위 디렉터리의 파일 나열

특정 하위 디렉터리의 파일 나열

다음과 같은 폴더 구조가 있습니다.

/1/a/x
/1/b/y
/2/a/z
/2/b/d
/3/a/r
/3/b/e

'a' 폴더의 하위 폴더에 있는 모든 파일에 대해 파일 + 파일 크기를 나열하고 싶습니다. find를 사용해 보았지만 멈췄습니다. 올바른 명령은 무엇입니까?

답변1

크기와 전체 경로를 인쇄하려면 다음을 시도해 보세요.

find /[123]/a/* -type f -printf '%s %p\n'

보다man find다른 형식 문자열의 경우 -printf. 특히, 아마도 대신에 또는 대신에 %P또는 을 원할 수도 있습니다 .%f%p%b%s

[123]1-3 범위의 한 자리 숫자인 이름과 일치합니다. 귀하의 예가 귀하가 설명하려는 현실과 정확하게 일치하지 않는 경우에는 이를 확장하거나 *좀 더 제한적인 것으로 확장할 수 있습니다.

GNU는 findCentOS에서 표준이어야 하지만 적절하게 이식 가능한 코드가 필요한 경우 사용할 수도 있습니다 find ... -exec stat {} \;(그러나 stat이식성 문제도 있습니다. 이 명령은 대부분의 플랫폼에 있어야 하지만 특정 항목을 인쇄하도록 정확히 가져오는 방법은 구현마다 다릅니다). 또 다른 옵션은 find ... -ls다음과 같습니다.파싱 ls.

하위 디렉터리를 탐색할 필요가 없다면 find.

stat -c '%s %n\n' /[123]/a/*/*

관련 정보