本文主要是介绍df命令和du命令统计同个目录不同,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
>df [选项] [文件]
常用的选项:
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
--no-sync 忽略 sync 命令
-P 输出格式为POSIX
--sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型
选择参数:
--block-size=<区块大小> 指定区块大小
-t<文件系统类型> 只显示选定文件系统的磁盘信息
-x<文件系统类型> 不显示选定文件系统的磁盘信息
--help 显示帮助信息
--version 显示版本信息
>du [选项] [文件]
du常用的选项:-h:以人类可读的方式显示-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和--apparent-size:显示目录或文件自身的大小-l :统计硬链接占用磁盘空间的大小-L:统计符号链接所指向的文件占用的磁盘空间大小
>du -ah --max-depth=0 /
>du -ah --max-depth=0 /tmp
或用
>du -sh /tmp #统计当前目录大小<span style="white-space:pre">
1. 如何记忆这两个命令
du-Disk Usage
df-Disk Free
2. df 和du 的工作原理
2.1 du的工作原理
du命令会对待统计文件逐个调用fstat这个系统调用,获取文件大小。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。如果针对的目录中文件很多,du速度就会很慢了。
2.2 df的工作原理
df命令使用的事statfs这个系统调用,直接读取分区的超级块信息获取分区使用情况。它的数据是基于分区元数据的,所以只能针对整个分区。由于df直接读取超级块,所以运行速度不受文件多少影响。
3 du和df不一致情况模拟
常见的df和du不一致情况就是文件删除的问题。当一个文件被删除后,在文件系统 目录中已经不可见了,所以du就不会再统计它了。然而如果此时还有运行的进程持有这个已经被删除了的文件的句柄,那么这个文件就不会真正在磁盘中被删除, 分区超级块中的信息也就不会更改。这样df仍旧会统计这个被删除了的文件。
来源:http://www.cnblogs.com/heyonggang/p/3644736.html
这篇关于df命令和du命令统计同个目录不同的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!