du命令是用来查看使用空间的,但是它与df命令有着本质的不同。
我在这里从原理上来分析两者的区别:
du的工作原理:
1.du命令会对待统计文件逐个调用fstat这个系统调用,获取文件大小。
2.它的数据是基于文件获取的,可以跨越多个分区操作。
3.如果针对的目录中文件很多,du速度就会很慢了。
df的工作原理:
1.df命令使用的是statfs这个系统调用,直接读取分区的超级块信息获取分区使用情况。
2.它的数据是基于分区元数据的,所以只能针对整个分区。
3.由于df直接读取超级块,所以运行速度不受文件多少影响。
1.命令格式:du [选项][文件]
2.命令功能:显示每个文件和目录的磁盘使用空间。
3.命令参数:
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时&#x