du&df


查看磁盘使用情况
$ df -h

查看文件的大小
$ du -h test.test

查看目录的大小
$ du -sh /etc

按照目录大小排序(降序)
$ du -s * | sort -rn | cut -f2- | xargs -d "\n" du -sh



<think>我们正在讨论的是Linux中的du和df命令,用户希望了解它们的功能、使用方法及区别。根据用户提供的引用内容,我们可以知道: 引用[1]和引用[2]都详细解释了du和df命令的区别,主要集中在它们计算磁盘空间的方式不同: - du(disk usage)通过搜索当前存在的文件并累加大小来计算,因此它看不到已被删除但还未被系统完全释放的文件。 - df(disk free)则通过文件系统来获取信息,因此它会包括已被删除但尚未释放的文件所占用的空间。 此外,用户还要求提供功能和使用方法。 因此,我们的回答将包括: 1. du命令的功能和使用方法 2. df命令的功能和使用方法 3. 两者的区别(重点) 4. 使用示例 注意:回答中需要引用时,在引用段落末尾自然地添加引用标记,如[^1]。 由于这是一个系统级指令,我们还需要注意以下几点: - 行内数学表达式用$...$,独立公式用$$...$$ - 使用中文回答 - 生成相关问题 - 回答结构清晰 但是,由于当前主题是Linux命令,不涉及数学表达式,所以数学表达式的部分可能不会出现,但我们仍然要注意如果有需要就用。 现在开始组织回答: </think>### `du` 和 `df` 命令详解 `du`(disk usage)和 `df`(disk free)是 Linux 系统管理磁盘空间的核心工具,两者功能互补但计算逻辑不同。 --- #### **1. `du` 命令:文件级空间统计** **功能** 通过递归扫描文件系统,**累加每个文件的实际大小**,仅统计当前存在的文件(不包括已删除但未释放的文件)。 **常用语法** ```bash du [选项] [目录/文件] ``` **关键选项** | 选项 | 作用 | 示例 | |------|-------------------------------|--------------------------| | `-h` | 人性化显示(KB/MB/GB) | `du -h /home` | | `-s` | 仅显示总大小(不递归明细) | `du -sh /var/log` | | `-a` | 显示所有文件(含子目录) | `du -ah ./docs` | | `--max-depth=N` | 限制扫描深度 | `du -h --max-depth=1 /` | **示例输出** ```bash $ du -sh /var/log 2.1G /var/log # 当前目录下所有文件实际大小总和 ``` --- #### **2. `df` 命令:文件系统级空间统计** **功能** 直接读取**文件系统的元数据**,统计磁盘块使用情况,包含已删除但未释放的空间(因进程占用未回收)[^1]。 **常用语法** ```bash df [选项] [挂载点] ``` **关键选项** | 选项 | 作用 | 示例 | |------|-------------------------------|--------------------------| | `-h` | 人性化显示 | `df -h` | | `-T` | 显示文件系统类型 | `df -T /dev/sda1` | | `-i` | 显示 inode 使用情况 | `df -i /home` | **示例输出** ```bash $ df -h / Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 42G 5.8G 88% / # 包含已删除未释放空间 ``` --- #### **3. 核心区别与工作原理** | **维度** | **`du`** | **`df`** | |-------------------|-----------------------------------|-----------------------------------| | **统计对象** | 当前存在的文件 | 文件系统分配的磁盘块 | | **已删除文件** | 不计算 ❌ | 计算(直到空间释放)✅ [^1] | | **计算速度** | 慢(需递归扫描文件) | 快(直接读元数据) | | **精确度** | 文件大小累加值精确 | 反映操作系统视角的磁盘占用 | | **典型场景** | 查找大文件/目录 | 监控磁盘剩余空间 | **关键差异原理** - 当删除文件时,若进程仍占用该文件(如 Apache 日志文件),文件系统会**标记删除但暂不释放空间**。 - `df` 统计时包含这些标记删除的块,而 `du` 只统计未被删除的文件 [^2]。 - 释放后两者结果趋于一致: $$ \text{释放后:} \quad \text{df\_used} \approx \text{du\_sum} $$ --- #### **4. 典型问题诊断案例** **场景**:`df` 显示磁盘耗尽,但 `du` 统计空间正常 **原因**:大量文件被删除但未释放(如被进程占用的日志文件) **解决步骤**: ```bash # 1. 检查未释放文件的进程 lsof | grep deleted # 2. 重启相关进程释放空间 systemctl restart nginx # 3. 验证空间恢复 df -h /var # 空间恢复正常 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值