linux中du, df两个命令的区别

2018-03-29  本文已影响152人  analanxingde
du,df示例

实现原理:

df 命令的全称是Disk Free ,显而易见它是统计磁盘中空闲的空间,也即空闲的磁盘块数。它是通过文件系统磁盘块分配图进行计算出的。
du 命令的全称是 Disk Used ,统计磁盘有已经使用的空间。它是直接统计各文件各目录的大小,而不是从硬盘获得信息的。

返回值可能不同的情况(df>du):

1、 元数据Meta Data的存在

元数据Meta Data的存在:

文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data

2、用户删除文件

2.1. 如果用户删除了一个正在运行的应用所打开的某个目录下的文件:

当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件

2.2. 用户写入已被删除的文件

一个进程要向一个文件里面写东西,那么会得到一个pointer,
然后向指针指向的文件(磁盘区域)写入。假如由于某些原因(也可能人为)被指向的文件被删除了,但是( write call)并不知道文件是否还在,就还会继续向里面写,不管文件是否存在,磁盘块还是被写操作使用。

上一篇下一篇

猜你喜欢

热点阅读