Linux에서 디스크 파일 크기를 보거나 결정하는 방법은 무엇입니까?

Linux에서 디스크 파일 크기를 보거나 결정하는 방법은 무엇입니까?

Windows에서는 파일/디렉터리의 실제 크기와 디스크 크기를 볼 수 있으며, 디스크 크기는 블록 크기에 따라 다릅니다.

Linux(mint)에서 이것을 어떻게 볼 수 있나요?

내 디스크에는 다양한 크기의 사진 수천 개가 있습니다.

실제 크기와 디스크, 특히 디렉터리에서 차지하는 공간을 확인하고 싶습니다. Windows에서는 낭비되는 공간이 기가바이트에 달할 수 있습니다.

답변1

내 생각에 당신이 찾고 있는 것은 입니다 du. 실행 후에는 du -s <directory>디렉터리 내용이 차지하는 디스크 공간이 표시됩니다. du또한 디렉터리에 있는 각 파일의 크기를 개별적으로 계산하고 총 콘텐츠의 크기를 알 수 있습니다.

du -s --apparent-size <directory>

블록 할당으로 인해 "낭비된" 공간의 양을 알고 싶다면 첫 번째 명령의 결과에서 두 번째 명령의 결과를 빼면 됩니다.

참고: --apparent-size보고서 크기(KB)입니다. -b파일에 포함된 정확한 바이트 수를 알고 싶다면 이 플래그를 사용할 수 있습니다. 예를 들어 파일을 전달하기 위해 네트워크를 통해(헤더 등 없이) 전송해야 하는 바이트 수를 알고 싶은 경우에 유용합니다.

답변2

디스크 크기:

du -s -B 1 *
du -s -B 1 * | cut -f 1

콘텐츠 크기:

du -s --apparent-size -B 1 *
du -s --apparent-size -B 1 * | cut -f 1

-s
-B 11kb 수 대신 하위 디렉터리 인쇄 크기를 바이트 단위로 인쇄하지 마세요.

cut -f 1출력에서 파일 이름 생략


스크립트의 출력은 다음과 같습니다.
size of contents:xxxxx, size on disk: xxxxx, percentage wasted: xx.xx%, difference: xxxxx

dirName='.';
sizeOfContents=$(du -s --apparent-size -B 1 "$dirName" | cut -f 1);
sizeOnDisk=$(du -s -B 1 "$dirName" | cut -f 1);
echo size of contents:$sizeOfContents, size on disk: $sizeOnDisk, percentage wasted: $(echo "scale=2 ; 100 - 100*$sizeOfContents/$sizeOnDisk" | bc)%, difference: $(($sizeOnDisk-$sizeOfContents));

한 줄 버전:

dirName='.'; sizeOfContents=$(du -s --apparent-size -B 1 "$dirName" | cut -f 1);sizeOnDisk=$(du -s -B 1 "$dirName" | cut -f 1);echo size of contents:$sizeOfContents, size on disk: $sizeOnDisk, percentage wasted: $(echo "scale=2 ; 100 - 100*$sizeOfContents/$sizeOnDisk" | bc)%, difference: $(($sizeOnDisk-$sizeOfContents));

관련 정보