du命令-h选项改变显示结果,如何判断正确数值?
du命令-h选项改变显示结果,如何判断正确数值?
嘿,我完全懂你这种困惑——du命令的参数组合确实容易让人看懵,尤其是不同选项输出的数字看起来好像对不上,咱们来慢慢理清楚!
首先得明确几个关键细节:
- 当你不带
-h选项时,du默认的输出单位是千字节(KB),而不是字节; -h选项的作用是把原始数值转换成更易读的「人类友好单位」(比如KB/MB/GB),同时会做四舍五入处理。
先看你第一个例子:
~$ du --apparent-size -sh Documents/ 376M Documents/ ~$ du --apparent-size -s Documents/ 384767 Documents/
这里第二个命令输出的384767是千字节,把它换算成MB的话:384767 ÷ 1024 ≈ 375.75 MB,所以-h选项会把这个数值四舍五入成376M——这和你误以为的「384767字节≈385M」完全是单位理解错啦!
再看第二个更迷惑的例子:
~$ du -bsh Documents/ 376M Documents/ ~$ du -bs Documents/ 394001294 Documents/
这里-b选项强制du用字节作为单位,所以第二个命令的394001294是字节数,换算成MB的话:394001294 ÷ 1024 ÷ 1024 ≈ 375.75 MB,同样被-h四舍五入成376M,和第一个例子的核心数值其实是完全一致的。
总结一下:这几个输出结果本质上都是同一个数值的不同单位表示,-h只是帮你做了单位转换和简化显示,并没有改变真实的大小数据。你完全可以通过单位换算验证所有结果都是统一的,不存在哪个“更正确”的说法——只是要看你需要哪种单位的精确值,还是更易读的简化值。
备注:内容来源于stack exchange,提问作者mazda
相关产品推荐
相关产品推荐

