du는 디렉토리 크기가 해당 내용의 합보다 훨씬 작다고 보고합니다.

du는 디렉토리 크기가 해당 내용의 합보다 훨씬 작다고 보고합니다.

디렉토리가 있고 ~/D그 크기를 찾고 싶습니다. 그러나 을 실행하면 개별 파일이 더 많아지는 것을 분명히 볼 수 있습니다 du -c ~/D/*. 실제로 개별 파일을 확인하면 오류도 발생합니다. 출력의 마지막 줄은 다음을 제공합니다.26880ls -l ~/D26880dudu ~/D/*

256 /home/me/D/lastFile.bin

그리고 마지막 줄 ls -l ~/D

-rw-r--r-- 1 me myGroup 3124 Aug 24 21:58 lastFile.bin

이는 256분명히 와 같지 않습니다 3124. 이것이 바이너리 파일이라는 것이 중요합니까?

편집하다:du이것은 사이의 차이점에 대한 질문과 중복되지 않습니다 df. df이 경우 나에게 아무것도 제공하지 않는 것 같습니다.

편집하다: stat -c %s ~/D/lastFile.bin출력과 일치ls -l

답변1

~에서매뉴얼 페이지:

   Display values are in units of the first available SIZE from
   --block-size, and the DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE
   environment variables.  Otherwise, units default to 1024 bytes (or
   512 if POSIXLY_CORRECT is set).

따라서 256kB(또는 POSIX적으로 올바른 경우 128kB)는 여러 3124바이트 파일에 충분한 공간을 제공합니다.

GNU를 사용하면 du-B옵션을 사용하여 출력의 단위 크기를 설정할 수 있으며, 기본 인쇄 크기 인 바이트 단위의 크기를 얻으려면 -B1또는 -b(equals )을 사용하십시오.-B1 --apparent-sizels

실제로 볼 수 있는 불일치는 아마도 파일 시스템 기록의 특이한 점일 것입니다. 적어도 대부분은 파일이 전체 블록에 할당된다는 사실입니다. 예를 들어, ext4파일 시스템 에서 100000-byte 파일은 바이트 블록으로 할당 102400되기 때문에 실제로 바이트를 차지합니다. 4096이것이 du내 시스템에 나타나는 것입니다.

--apparent-sizedu오버헤드가 아닌 파일의 데이터 크기 만 계산됩니다.

관련 정보