Linux基础篇,磁盘及文件使用管理
在windows系统下,我们可以使用图形化界面很明了的看出当前硬盘使用量与某个文件的占用空间大小和文件数量。但是在linux系统中,我们应该如何得到这些信息呢?
当然是功能强大的df与du了。
一、df与du的区别
一般而言,df(disk free)和du(disk usage)不一致就是文件删除的问题。
对于df来说:它通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。
对于du来说:它通过搜索它能看到的文件(文件系统目录不存在的文件)来计算每个文件的大小然后累加,du只是一些当前存在的,没有被删除的文件。
当一个文件被删除后,在文件系统目录中已经不存在了,所以du就不再统计该文件。但是如果此时还有运行的程序持有这个已经被删除的文件的句柄,那么这个文件就不会真正的在磁盘中被删除,分区的超级块中信息也就不会更改,所以df还会统计这个已经被删除了的文件。因此当文件系统也确定删除了该文件后,这时候du与df就一致了。
二、df
列出文件系统的整体磁盘使用量;
df [-ahikHTm] [目录或文件名]
-a ===> 列出所有的文件系统, 包括系统特有的 /proc 等文件系统
-k ===> 以 KBytes 的容量显示各文件系统
-m ===> 以 MBytes 的容量显示各文件系统
-h ===> 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示
-H ===> 以 M=1000K 取代 M=1024K 的进位方式
-T ===> 连同该 partition 的 filesystem 名称 ( 例如 xfs) 也列出
-i ===> 不用磁盘容量, 而以 inode 的数量来显示
三、du
评估文件系统的磁盘使用量( 常用在推估目录所占容量)
du [-ahskm] 文件或目录名称
-a ===> 列出所有的文件与目录容量, 因为默认仅统计目录下面的文件量而已。
-h ===> 以人们较易读的容量格式 ( G/M) 显示;
-s ===> 列出总量而已, 而不列出每个各别的目录占用容量;
-S ===> 不包括子目录下的总计, 与 -s 有点差别。
-k ===> 以 KBytes 列出容量显示;
-m ===> 以 MBytes 列出容量显示;