![특정 하위 디렉터리의 파일 나열](https://rvso.com/image/1558685/%ED%8A%B9%EC%A0%95%20%ED%95%98%EC%9C%84%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EC%9D%98%20%ED%8C%8C%EC%9D%BC%20%EB%82%98%EC%97%B4.png)
다음과 같은 폴더 구조가 있습니다.
/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는 find
CentOS에서 표준이어야 하지만 적절하게 이식 가능한 코드가 필요한 경우 사용할 수도 있습니다 find ... -exec stat {} \;
(그러나 stat
이식성 문제도 있습니다. 이 명령은 대부분의 플랫폼에 있어야 하지만 특정 항목을 인쇄하도록 정확히 가져오는 방법은 구현마다 다릅니다). 또 다른 옵션은 find ... -ls
다음과 같습니다.파싱 ls
.
하위 디렉터리를 탐색할 필요가 없다면 find
.
stat -c '%s %n\n' /[123]/a/*/*