You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04中创建文件大小与du显示大小不符的疑问

关于Ubuntu 22.04中文件大小显示的两个疑问解答

1. du -sh输出中的"M"代表MiB(Mebibyte)而非MB(Megabyte)

在Ubuntu 22.04的du命令里,-h(人类可读格式)选项默认采用1024进制的单位缩写:

  • K对应KiB(1024字节)
  • M对应MiB(1024×1024=1,048,576字节)
  • G对应GiB(1024³字节)

这是GNU coreutils工具集的默认行为,虽然显示的是M,但实际指向二进制单位MiB,而非十进制的MB(1000×1000=1,000,000字节)。如果需要强制使用十进制单位,可给du添加--si选项,此时显示的MB才是十进制的Megabyte。

2. 为何10MB的文件显示为9.6M?

核心原因是两个命令对单位的定义不同,加上数值近似导致:

  • 创建文件的head -c 10MB:GNU head命令中,-c参数后的MB是十进制单位,即1MB=1,000,000字节,所以10MB对应的是10,000,000字节的文件。
  • du -sh的计算逻辑:du默认用二进制单位MiB计算,将10,000,000字节转换为MiB的过程为:
    10,000,000 ÷ 1,048,576 ≈ 9.5367 MiB
    
    du -h会对结果做四舍五入的近似显示,最终呈现为9.6M。

内容的提问来源于stack exchange,提问作者HKS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 12:13:12