linux下的du和df的区别

du(disk usage)是经过搜索文件来计算每一个文件的大小而后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的全部文件大小的累加和。node


df(disk free)经过文件系统来快速获取空间大小的信息,当咱们删除一个文件的时候,这个文件不是立刻就在文件系统当中消失了,而是暂时消失了,当全部程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是经过文件系统获取到的文件的大小,他比du强的地方就是可以看到已经删除的文件,并且计算大小的时候,把这一部分的空间也加上了,更精确了。当文件系统也肯定删除了该文件后,这时候du与df就一致了。spa


du和df不一致状况缘由:
常见的df和du不一致状况就是文件删除的问题。当一个文件被删除后,在文件系统 目录中已经不可见了,因此du就不会再统计它了。然而若是此时还有运行的进程持有这个已经被删除了的文件的句柄,那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改。这样df仍旧会统计这个被删除了的文件。

实际上即便你/home什么都没有,df命令依然会显示占用了一部分空间的,文件系统的元数据占了部分空间。

df和du统计的数据是不一样的:
打个比方,文件是须要放到文件柜里的,就算只有一个文件,也要占用一个文件柜。文件柜占用的空间比文件要大。
df就是统计使用了多少个文件柜。
du则统计实际有多少个文件。
这样下来,df算的就大,du就小。

簡單地說,df命令是根據該卷的inode使用情況進行統計的,而du則是累加全部文件的字節數。一個文件就算只有1字節,也要佔用一個inode。
进程

相关文章
相关标签/搜索