df命令和du命令统计同个目录不同

来源:互联网 发布:淘宝直通车基础题答案 编辑:程序博客网 时间:2024/05/21 06:18
>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

0 0
原创粉丝点击