디렉터리에 있는 모든(숨겨진 폴더와 숨겨진 폴더가 아닌) 폴더의 크기를 어떻게 (비재귀적으로) 측정하나요?

디렉터리에 있는 모든(숨겨진 폴더와 숨겨진 폴더가 아닌) 폴더의 크기를 어떻게 (비재귀적으로) 측정하나요?

somedir두 개의 하위 디렉터리 .hiddenDirnotHidden.

비재귀적으로 측정하고 싶습니다.모두의 하위 somedir디렉터리

유닉스에서는 어떻게 할 수 있나요?


내가 원하는 사진:

여기에 이미지 설명을 입력하세요.

실패한 시도:

다음 du명령 기반 명령은 표시되는 디렉터리만 반환합니다.

du -sh *

하지만

du -sh .*

숨겨진 디렉터리만 반환됩니다.


치수를 어떻게 반환합니까?모두사진의 목차가 마음에 드시나요?

답변1

GNU 사용 du:

du -hd1

(또한 .하위 디렉터리에서 보고된 디스크 사용량과 현재 디렉터리에 있는 디렉터리가 아닌 파일의 디스크 사용량을 합한 디스크 사용량도 보고합니다.)

zsh다음과 함께 du:

du -sk -- *(/D)

(킬로바이트 단위).

그럼에도 불구하고 이는 다음 디렉터리와 그 내용의 깊이 2나 디스크 사용량을 보고하지 않지만 해당 디렉터리의 디스크 사용량은 여전히 ​​최상위 디렉터리에서 보고하는 디스크 사용량에 포함됩니다.재귀).

이것은 잠재적인 의미 중 하나입니다.크기디렉토리의. 즉, 이는 해당 디렉터리와 그 내용이 삭제될 경우 회수될 디스크 공간입니다(해당 파일에 해당 디렉터리 외부에 하드 링크가 없고 해당 데이터가 부분적으로 참조되지 않는다고 가정). 디렉터리 외부의 다른 파일), 이는 보고된 파일 자체(디렉터리 파일 포함)의 겉보기 크기에 대한 총합과 다른 경우가 많습니다 ls -l.

답변2

Du는 여러 인수를 허용합니다. 실제로 *는 du에 전달되기 전에 쉘에 의해 확장됩니다. 그게 당신이해야 할 전부입니다.

du -sh * .??*

이렇게 하면 단일 문자로 이름이 지정된 파일이나 디렉터리가 손실됩니다 .(예: .a.

.??*현재 디렉터리와 상위 디렉터리에 대한 링크인 .및 를 건너뛰는 데 사용됩니다 ...

관련 정보