千家信息网

df和du命令区别

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,1、正常情况下,df和du输出结果都会有差距。du -sh命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数;而df命令通过查看文件系统磁盘块分配图得出总块数与
千家信息网最后更新 2026年11月02日df和du命令区别

1、正常情况下,df和du输出结果都会有差距。


du -sh命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的


总块数;

而df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。

文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等


。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data。

du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data


。


因此正常情况下,df计算的USED空间会比du计算的结果要稍大



2、异常情况下,df计算的USED空间会比du大很多。

这也是之前碰到的问题,df查看结果文件系统100%使用了,而du的结果是还有6GB空闲的,就这么个问题硬件厂商一个SUPPORT居然不知道怎么解释,这也是让我好奇晚上回来查查看究竟的原因,结果GOOGLE一下就有了。

原因在于du是以文件名、目录名为依据计算空间使用的,而df是以硬盘块使用情况来计算空间使用的。

当一个应用程序正在写一个大文件的时候,我们RM或者MV了这个文件(UNIX是允许这么干的,WINDOWS在这一点上傻有傻福),应用程序会占有句柄,并根据句柄所指磁盘位置直接写磁盘,而不会检查该文件是否被删除。

因此就会产生上述的问题。具体到Oracle层面,可能发生这种情况的有:Oracle因为某种原因在生成很大的TRACE文件,可能导致oracle等目录满,如果此时直接RM或MV掉该TRACE文件会发现空间并不会释放,进而可能导致Oracle数据库DOWN机。

解决办法:使用"> tracefile.trc"命令清空掉该文件,如果需要保留TRACE文件便于事后分析问题,可以使用CP先复制该文件到其他地方,然后清空掉原来的文件


文件 磁盘 系统 命令 情况 空间 结果 程序 问题 原因 数据 目录 分配 句柄 应用程序 用户 应用 很大 好奇 位置 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广州为想互联网科技有限公司 广州大一互联网络科技有限公司 互联网下的科技发展 青岛互联网科技公司 以房互联网科技 郑州华宇互联网科技 湖北码尼互联网科技有限公司电话 浙江互联网科技研学营 昊天互联网科技有限公司 语蝶互联网科技有限公司 民营互联网公司国防科技 佛山市翊博互联网络科技有限公司 21世纪互联网科技成就 广州互联网高科技取餐柜 九思连强互联网电子科技有限公司 北京互联网科技类企业分布 安徽零酒互联网科技有限公司 互联网金融金融科技 广东猫王互联网科技有限公司电话 六子台科技互联网展会 互联网科技园 工业互联网科技新基建 万易互联网科技 互联网 科技创业 宜安科技 互联网金融 从那以后互联网科技有限公司 银川新华互联网科技学校是国营吗 三亚科技创新互联网基地 网互联网络科技 互联网高科技绘画
0