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

stat命令显示文件大小为何与du命令不同?以单字符文件为例

为什么stat和du显示的文件大小存在差异?

核心原因:统计对象完全不同

  • stat的Size字段:统计的是文件实际包含的字节数。你用echo a > test创建文件时,echo会自动在字符a后追加一个换行符(\n),文件实际内容是a\n,合计2个字节,这就是stat显示Size:2的原因。
  • du命令:统计的是文件占用的磁盘块大小。Linux主流文件系统(如ext4)默认磁盘块大小为4KB(4096字节),哪怕文件内容只有2字节,也需要占用至少一个完整磁盘块来存储,因此du -h会显示4.0K。

补充说明

若想让du显示文件实际字节大小,可使用命令du -b test,此时输出会和stat的Size字段一致(显示2字节)。如果文件内容超过单个磁盘块的容量,du会统计实际占用的磁盘块总数对应的总大小,而stat仍只会统计文件内容的字节数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 21:09:30