1.记住命令
du:disk Usage
-h, --human-readable
print sizes in human readable format
df:disk free
2.区别
du -sh /home例如你查看home目录的下面的文件,用来获取文件的大小的,这个命令是基于文件的,可以跨分区,不一定非要针对一个分区,灵活性大,如果目录下的文件很多的话,速度就会变慢。
df -h /home:因为他是针对元数据的,所以针对整个分区的。df会直接读取分区的超级块信息获取分区情况。所以他的运行是不受文件的影响
3 du和df不一致情况模拟
常见的df和du不一致情况就是文件删除的问题。当一个文件被删除后,在文件系统目录中已经不可见了,所以du就不会再统计它了。然而如果此时还有运行的进程持有这个已经被删除了的文件的句柄,那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改。这样df仍旧会统计这个被删除了的文件。
[root@VM_194_97_centos ~]# df -h /home/
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 20G 2.7G 16G 15% /
[root@VM_194_97_centos ~]# du -sh /home/
12K /home/
大家看,这个明显不同,df -h 明显是针对的是整个vda1的分区,du -sh 针对的是文件夹,大小也不一样。