df -k 和 du -sh 之间的区别

df -k 和 du -sh 之间的区别
df -k
/dev/sda6             25396228  21249088   2836240  89% /export
21G used

相对

du -sh /export 
3.4G    /export

3.4G 是正确的,因为我们已经删除了所有不必要的文件,但 df 报告的可用空间与应该存在的实际可用空间不一致。

为什么会这样?

答案1

您删除的文件可能仍被某个进程打开。请检查:

lsof -a +L1 /export

我认为这是因为:

  • df检查可用块(超级块)
  • du总计每个文件的空间。

答案2

一个或多个应用程序在 上打开了文件/export,但文件名本身已不存在(即已被删除)。

答案3

它们测量两个相似但略有不同的东西。df 测量文件系统的容量,du 测量目录树。例如,如果您有以下内容:

 /dev/sda6 mounted on /exports
 /dev/sda7 mounted on /exports/extra

/exports 的 df 仅测量 /dev/sda6,而 /exports 的 du 会测量 /dev/sda6 和 /dev/sda7。有一些关于跨越文件系统边界的标志会改变计数。符号链接的处理也可能影响结果。

相关内容