홈 디렉터리 아래에 있는 모든 디렉터리의 GB 크기를 확인하는 방법은 무엇입니까?

홈 디렉터리 아래에 있는 모든 디렉터리의 GB 크기를 확인하는 방법은 무엇입니까?

Mac의 Bash에서는 다음과 같은 작업을 수행할 수 있습니다.

cd         # go to home directory
ls -d */

홈 디렉터리의 폴더 이름을 가져옵니다.

우리는 사용할 수 있습니다

du -sh Documents

사람이 읽을 수 있는 형식으로 폴더 크기를 가져옵니다.

나는 다음과 같은 것을 시도했습니다

ls -d */ | xargs du -sh 

Tmp Files그러나 일부 디렉토리에는 해당 이름 (공백으로 구분된 두 단어) 이 있기 때문에 작동하지 않습니다 du -sh Tmp Files.

수정이 가능합니까, 아니면 du -sh모든 최상위 폴더와 전체 폴더를 처리하는 더 쉬운 방법이 있습니까?

답변1

xargs를 피할 수 있습니다.

du -sc */

를 사용하는 것은 "명령줄이 너무 깁니다" 오류를 피하기 위해 수천 개의 디렉토리가 있는 경우에만 유용합니다 xargs(그러나 전체 합계는 없고 duby 에 대한 각 호출에 대한 부분 합계 만 얻을 수 있습니다 xarg).

다른 명령의 경우 파일 이름의 잘못된 구문 분석을 방지하려면 xargs공백이나 줄 바꿈 대신 null 값으로 구분하세요.

printf '%s\0' * | xargs -0 du -s 

( printf인수를 반복하고 마지막에 NUL로 인쇄하며 xarg옵션으로 인해 NUL로 분할됩니다 -0). 이는 printf바이너리를 사용할 때 일반적인 줄 길이 제한이 있는 내장 쉘(bash)이라고 가정합니다.

답변2

총 금액은

du -s .

개별 폴더(및 파일)의 크기

du -s * .*

폴더만

du -s */  .*/

관련 정보