我运行程序du -hs
查看/home/user
目录有多大,结果显示为 18G。我清除了近 4G 的数据,然后du -hs
再次运行程序查看实际节省了多少空间,结果仍然显示为 18G。--apparent-size
结果显示为 19G。我做错了什么?
答案1
如果文件仍在使用中,du
则不会更新。
这是一个邮政通过一个练习,你可以看到它的实际效果:(适用于 BSD,但在 Linux 中是等效的)
答案2
另一个可能导致这种情况的原因是文件系统压缩和不知道这一点的实用程序。几年前我在 Solaris 上的 ZFS 上看到了这种情况,但理论上 Ubuntu 和任何其他支持压缩的文件系统都应该是相同的。
我用 创建了一个文件mkfile 10g test
。 之后,ls -lh
报告其为 10GB,并du -h
报告其为 0。
如果发现您清除的 4GB 空间,ls -lh
那么它可能并没有占用看起来那么多的空间。
答案3
这可能是由于硬链接这意味着您删除的文件仍以其他名称存在。要找到它们,请运行find -type f -links +1
。