技术与生活 / 一篇记录
df 说满了,du 却没那么大
文件系统的可用空间和目录中可见文件的总量,并不是同一个统计口径。挂载点、权限不足以及仍被进程持有的已删除文件,都可能让两边数字看起来对不上。
df 查看文件系统空间,du 统计目录中的文件占用,两者回答不同问题。
实际怎么检查
以下示例面向常见 GNU/Linux 环境,文件名为实验用占位名称。
df -h .; du -sh .
在同一挂载点比较目录占用与可用空间。
遇到异常再检查什么
先确保比较的是同一个文件系统,再检查隐藏的大目录与进程打开文件。不要根据一次 du 结果就断言空间统计出错,也不要立即删除更多文件。
目录统计也可能跨越其他挂载点,把另一块磁盘内容算进来。比较前检查挂载关系,必要时限定在同一文件系统。清理前保存占用快照,之后才能判断空间是否按预期释放。
已删除但仍被进程打开的文件会导致两者不一致。
参考:Linux 文档。