df -h 和 ll -h 返回信息不一致

Discrepancy between df -h and ll -h returned information

各位! df -h 表示磁盘已满(已使用 100%)。 但是当我使用 ll -h 时,文件的总大小几乎是 2%。 有人可以解释发生了什么吗?

主要有两个原因:

  1. 在Linux中,即使文件被其他人(例如某些程序)打开,您也可以删除文件。这是因为,当你删除一个文件时,只有文件系统引用这个文件被删除,实际文件本身被删除(并且磁盘 space 被释放)只有当所有用户都关闭了这个文件。 ls 看不到已删除但仍在使用的文件。
  2. 几乎所有的文件系统都以块的形式排列它们的数据,通常是 4Kbytes。也就是说,当你创建一个小文件时,实际使用的磁盘space至少还是4K。当你有很多小文件时,这就变得很重要了。

lsdf 之间的区别在于,一个显示文件内容的大小,而另一个显示实际使用的磁盘 space。