du命令和df命令的区别

du命令和df命令额区别

du命令:

disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。

df命令:

disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。

从上面的解释我们可以得知,df比du命令计算更精确,当一个文件被删除,但是该文件的句柄仍然被进程占用时,du不会计算该文件的占用空间,但是df会计算。


如何查看已经删除但仍然被其他进程占用句柄的文件?

lsof | grep delete


wKiom1dXeNrRavIMAAUedtLcrSU351.png-wh_50


du 命令


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<文件>或--exclude-from=<文件>  在<文件>指定目录或文件。   

--exclude=<目录或文件>         略过指定的目录或文件。    

-D或--dereference-args   显示指定符号链接的源文件大小。   

-H或--si  与-h参数相同,但是K,M,G是以1000为换算单位。   

-l或--count-links   重复计算硬件链接的文件。  

使用示例:

wKioL1dXfLeAiPfkAABMNn23Ulk454.png-wh_50



df命令:

linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

1.命令格式:

df [选项] [文件]

2.命令功能:

显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示

3.命令参数:

必要参数:

-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 显示版本信息



df命令使用示例:

wKioL1dXe-Hwl8N8AADhSZNNo8Q557.png-wh_50



从“du -sh  / ”命令结果和"df -h"命令结果来看“/”分区的使用空间都是6.8G。表示没有被删除的文件的句柄被进程占用。


列举一个被删除文件句柄被占用的例子

wKioL1dXfanS4aEnAAIWc8QXtKg362.png-wh_50

从上图可以看到du命令计算出的/分区的占用空间为32G-28G=4G。df命令计算出的/分区的使用空间为12G,表示/分区有12G-4G=8G空间的文件句柄被进程占用的,没有释放掉。要解决这个问题,重启系统或者对应的进程就可以了。










本文转自 曾哥最爱 51CTO博客,原文链接:http://blog.51cto.com/zengestudy/1787191,如需转载请自行联系原作者
<think>首先,用户的问题是:“我想了解Linux系统中dudf命令区别及其各自的作用 请问Linux du命令df命令区别及功能”。这基于提供的引用材料,我需要回答这个问题。 关键点: - 使用中文回答。 - 结构清晰,帮助用户逐步解决问题。 - 确保回答真实可靠,参考提供的引用。 - 在回答中引用的段落末尾自然地添加引用标识,如[^1]。 - 所有行内数学表达式用$...$格式,但这里可能不涉及数学,所以可能不需要。 - 独立公式用$$...$$,但同样,可能不适用。 - 生成相关问题。 提供的引用: - [^1]: Linux系统中du命令df命令区别与用法。du(disk usage)df(disk free)用于监控管理磁盘空间。du计算文件或目录的磁盘使用量,df报告文件系统的磁盘空间使用情况。 - [^2]: du命令用于计算文件或目录的磁盘使用量,输出实际使用的磁盘空间大小。df命令用于报告文件系统的磁盘空间使用情况,输出文件系统级别的统计信息。 - [^3]: du解释:disk usage, 磁盘使用情况,用于计算文件或目录大小。命令格式:du [选项] 参数 -s 显示目录或者文件占用磁盘大小 -h 易读方式显示。df命令。 - [^4]: df命令选项:-h 以易读格式输出,-k 以kB为单位,-m 以mB为单位,-a 列出所有文件系统分区,-i 列出inodes信息,-T 显示文件系统类型。 回答结构: 1. **介绍**:简要解释dudf命令是什么。 2. **区别**:对比dudf的主要区别。 3. **功能**:详细说明每个命令的功能用法。 4. **示例**:提供简单示例来展示用法。 5. **总结**:总结关键点。 6. **相关问题**:生成相关问题。 确保回答真实可靠:基于引用材料,不添加未经验证的信息。 添加引用标识:在引用材料末尾添加[^n],如[^1]。 生成相关问题:在回答结束时,添加“相关问题”部分。 完整回答框架: - 开头:直接回应问题。 - 主体:分点解释。 - 结尾:总结相关问题。 具体内容: 1. **du命令**: - 功能:计算文件或目录的磁盘使用量。输出实际使用的磁盘空间大小。 - 用法:常用选项如 -s (显示总大小), -h (易读格式)。 - 示例:du -sh /path/to/directory - 引用:[^3] 2. **df命令**: - 功能:报告文件系统的磁盘空间使用情况。输出文件系统级别的信息,如总空间、已用空间、可用空间。 - 用法:选项如 -h (易读格式), -i (inodes信息), -T (文件系统类型)。 - 示例:df -h - 引用:[^4] 3. **区别**: - du 关注文件或目录的实际使用量。 - df 关注文件系统的整体空间使用情况。 - 关键区别du 基于文件系统遍历计算,df 直接从文件系统元数据获取。 - 引用:[^1], [^2] 4. **总结**:两者都用于磁盘空间管理,但提供不同视角的信息。 相关问题生成: - 基于主题,如: 1. 如何优化du命令的性能? 2. df命令显示inodes信息有什么作用? 3. 在Linux中,如何结合使用dudf命令? 确保语言中文。</think>### Linux系统中du命令df命令区别及功能 在Linux系统中,`du`(disk usage)`df`(disk free)是两个常用的磁盘空间管理命令,它们都用于监控磁盘使用情况,但功能输出信息有本质区别。下面我将逐步解释它们的区别、各自功能、用法示例,并总结关键点。回答基于可靠的Linux系统文档实践经验[^1][^2][^3][^4]。 #### 1. **du命令的功能与作用** - **功能**:`du`命令用于计算文件或目录的磁盘使用量(实际占用的磁盘空间)。它通过遍历文件系统来统计每个文件的大小,并输出具体的使用量。常用于检查特定目录或文件的磁盘占用情况。 - **主要作用**: - 显示文件或目录的实际大小(包括子目录)。 - 帮助用户识别大文件或目录,优化存储空间。 - **常用选项**: - `-h`:以易读格式显示大小(如KB、MB、GB)。 - `-s`:仅显示总大小,不列出子目录细节。 - 示例:`du -sh /home/user` 输出 `/home/user` 目录的总大小,以易读格式显示[^3][^4]。 - 示例输出: ``` $ du -sh /var/log 4.0K /var/log ``` 这表示 `/var/log` 目录占用4KB磁盘空间[^3]。 #### 2. **df命令的功能与作用** - **功能**:`df`命令用于报告文件系统的整体磁盘空间使用情况(基于文件系统元数据)。它直接从分区级别获取信息,显示总空间、已用空间、可用空间挂载点。 - **主要作用**: - 监控文件系统的空间利用率(如磁盘是否快满)。 - 提供系统级别的磁盘统计,帮助管理员规划存储扩展。 - **常用选项**: - `-h`:以易读格式显示大小。 - `-i`:显示inodes信息(文件系统索引节点使用情况)。 - `-T`:显示文件系统类型(如ext4、xfs)。 - `-a`:列出所有文件系统分区,包括大小为0的。 - 示例:`df -h` 输出所有挂载文件系统的空间使用情况[^4]。 - 示例输出: ``` $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 20G 15G 5.0G 75% / ``` 这表示根分区总大小20GB,已用15GB,可用5GB[^1][^2]。 #### 3. **du命令df命令的主要区别** - **核心区别**: - `du` 关注 **文件或目录级别** 的实际磁盘使用量(通过计算文件大小累加)。它输出的是用户数据占用的空间。 - `df` 关注 **文件系统级别** 的整体空间使用情况(直接从分区元数据读取)。它输出的是文件系统的总容量、空闲空间等统计信息。 - **工作原理差异**: - `du` 遍历目录结构,计算每个文件的大小,可能受文件系统碎片或硬链接影响。 - `df` 直接查询文件系统超级块(superblock),提供即时、全局的视图。 - **输出差异**: - `du` 输出具体数值(如目录大小),适合精细管理。 - `df` 输出百分比挂载点,适合快速检查磁盘健康。 - **常见误区**:`du` `df` 的值可能不一致,因为 `df` 包括系统保留空间(如5%的保留块),而 `du` 只计算用户文件。例如,删除文件后,`df` 可能立即显示空间释放,但 `du` 需要时间更新[^1][^2][^3]。 - 总结对比表: | 特性 | du命令 | df命令 | |------------|-------------------------|-------------------------| | 关注层级 | 文件/目录级别 | 文件系统级别 | | 输出内容 | 实际使用空间大小 | 总空间、已用、可用空间 | | 典型用途 | 查找大文件或目录 | 监控磁盘整体利用率 | | 依赖数据 | 遍历文件系统 | 读取元数据 | #### 4. **何时使用哪个命令** - 使用 `du` 时: - 需要检查特定目录的占用(如 `/var` 是否过大)。 - 优化存储时,识别并删除冗余文件。 - 使用 `df` 时: - 快速查看系统磁盘是否快满(如 `df -h` 显示Use%接近100%)。 - 诊断inodes耗尽问题(用 `df -i`)。 - 结合使用:例如,先用 `df` 发现磁盘空间不足,再用 `du` 定位具体占用大的目录[^2][^4]。 #### 5. **总结** `du` `df` 都是Linux磁盘管理的核心工具:`du` 提供微观视角(文件级使用量),而 `df` 提供宏观视角(系统级空间统计)。理解它们的区别能帮助您更高效地管理磁盘空间。例如,在服务器维护中,`df` 用于预警磁盘满,`du` 用于清理无用文件[^1][^2][^3][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值