du의 출력이 잘못 되었습니까?


12

내 du 명령이 혼란스러워합니다.

% du -shc DIR ...
...
6123941496      total

% du -shc DIR ...
...
6.1G    total

% du -sc --si DIR ...
...
6.6G    total

LANG=C스프레드 시트에서 결과를 제공 하고 다시 확인 하려고했습니다 . -h는 이미 1000의 거듭 제곱 (--si)을 사용하여 출력하는 것처럼 보이며 --si는 잘못된 대답을 제공합니다. 정답은 -h의 경우 5.7G, --si의 경우 6.1G이어야한다고 생각합니다. 여기서 어떻게됩니까?

% du --version
du (GNU coreutils) 8.20
...

% uname -a
Linux XXX 3.9-1-amd64 #1 SMP Debian 3.9.8-1 x86_64 GNU/Linux

3
실제 명령을 포함하십시오. ...대표는 무엇입니까 ? 똑같은 명령을 두 번 실행하고 다른 출력을 얻은 것 같습니다. 그렇습니까? 에서 크기 수정 자에 대한 설명을 읽었 man du습니까?
terdon

답변:


18

--apparent-size스위치를 사용하여 테스트를 반복하십시오 .

$ du -shc --apparent-size DIR ...

du man 페이지에서 발췌

--apparent-size
       print  apparent sizes, rather than disk usage; although the apparent size is
       usually smaller, it may be larger due to holes in (`sparse') files, internal 
       fragmentation, indirect blocks, and the like

1
아, 분명히 -b는 '-겉보기 크기 --block-size = 1'과 같습니다. 나는 그것을 놓쳤다. 'du -shc --apparent-size'를 사용하면 이제 5.7G가 올바르게 제공됩니다. 감사!
Gerry Lufwansa

@GerryLufwansa-예, 다른 파일 시스템이나 마운트 된 CIFS 시스템에서 믹싱을 시작하면 실제로 눈에 띄게됩니다. 항상 -b또는 중 하나를 사용합니다 --apparent-size.
slm

... 그리고 마이그레이션 된 파일이 0없이 (또는 몇 kB와 같은)보고하지 않는 HSM 시스템에서는 그 차이가 실제로 커질 수 있습니다 --apparent-size.
Ansgar Esztermann

duMac OS X과 함께 제공되는 솔루션은 무엇입니까?
Alec Jacobson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.