디렉토리가 있고 ~/D
그 크기를 찾고 싶습니다. 그러나 을 실행하면 개별 파일이 더 많아지는 것을 분명히 볼 수 있습니다 du -c ~/D/*
. 실제로 개별 파일을 확인하면 오류도 발생합니다. 출력의 마지막 줄은 다음을 제공합니다.26880
ls -l ~/D
26880
du
du ~/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-size
ls
실제로 볼 수 있는 불일치는 아마도 파일 시스템 기록의 특이한 점일 것입니다. 적어도 대부분은 파일이 전체 블록에 할당된다는 사실입니다. 예를 들어, ext4
파일 시스템 에서 100000
-byte 파일은 바이트 블록으로 할당 102400
되기 때문에 실제로 바이트를 차지합니다. 4096
이것이 du
내 시스템에 나타나는 것입니다.
--apparent-size
du
오버헤드가 아닌 파일의 데이터 크기 만 계산됩니다.