这样使用df和du命令更完美

本文介绍在Unix或Linux服务器上如何使用df和du命令查看磁盘空间和文件空间占用情况,包括查看当前目录磁盘分区使用率、目录大小及排序方法,并提供易于理解和排序的输出格式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通常我们在 Unix or Linux 服务器上查看磁盘空间和文件空间占用都会用到df和du这两个常用的目录。

 

1、查看当前目录磁盘分区使用情况

$ df -h .

输出总结了包含指定文件的文件系统的磁盘使用情况:

Filesystem  Size  Used Avail Use% Mounted on
/dev/vda1   99G   13G   82G  14%  /

如上表示/分区 使用率为 14%, 选项-h (--human-readable)告诉 df 使用对于人类阅读更友好的格式输出,而不是以1K的方式,而是以千字节、兆字节和千兆字节显示。学过GNU的工具程序都有-h选项。

 

 2、目录大小以及排序

为了更好的找到占用磁盘较大的目录,需要查看当前目录下所有目录的大小情况:

$ du -hd 1 .
2.8G  ./app
4.2G  ./appData
403M  ./backup
12M   ./logs
8.0K  ./pid
66M   ./tmp
413M  ./codes
7.9G  .

同样选项-h (--human-readable)告诉 du 使用对于人类阅读更友好的格式输出, 而-d 1告诉 du 进入到一个目录层级,不加(du -h)是所有层级。

如上可以看出占用空间较大的是appData目录,但是如果目录较多,就不那么明显了,难道我要根据单位(G M K)过滤,然后在筛选吗,No, 这时候可以用上sort排序,但是sort -n默认只对开头的数字排序,但是带上了单位,就排序不了了,不信我们看看下面:

$ du -hd 1 . | sort -n
2.8G  ./app
4.2G  ./appData
7.9G  .
8.0K  ./pid
12M   ./logs
66M   ./tmp
403M  ./backup
413M  ./codes

如上可以看出,还是没有排序,那怎么办,那就可以传递-k参数,默认都以KB为单位大小输出,不带单位符号:

$ du -kd 1 . | sort -n
8  ./pid
11900  ./logs
67528  ./tmp
412100  ./backup
422300  ./codes
2882308  ./app
4367852  ./appData
8231508  .

这样看起来可以了,但是不完美,GNU 开发时候,同样意识到了这点吧,所以我们可以给sort加一个-h选项,更利于你阅读:

$ du -hd 1 . | sort -hr
7.9G  .
4.2G  ./appData
2.8G  ./app
413M  ./codes
403M  ./backup
66M   ./tmp
12M   ./logs
8.0K  ./pid

这才是我想要的,完美: 易于阅读且经过适当排序。(sort 再加上-r选项可以反向,因此最大的目录在最前面)-h 选项是 sort 于 2009 年添加到 GNU 里面的。

提示: 有的系统默认du命令版本是没有-d参数的,需要用--max-depth=1代替。

推荐阅读

### Linux `du` 命令与 `df` 命令的区别及使用方法 #### 一、命令功能概述 - **`du` 命令**主要用于统计指定目录或文件的磁盘使用情况,能够显示单个文件或者整个目录树所占用的空间大小[^1]。 - **`df` 命令**则用于查看文件系统的整体磁盘空间使用状况,包括已用空间、可用空间以及挂载点等信息[^4]。 --- #### 二、具体区别 | 特性 | `du` 命令 | `df` 命令 | |---------------------|-----------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------| | **主要用途** | 统计特定目录或文件的磁盘使用量 | 查看整个文件系统的磁盘空间使用情况 | | **操作对象** | 单个文件或目录 | 文件系统 | | **输出内容** | 展示每个子目录及其父目录的磁盘占用情况 | 提供文件系统的总量、已用量、剩余量挂载位置 | | **单位支持** | 支持多种单位(默认为字节),可通过参数调整 | 默认以 KB 或其他指定单位展示 | --- #### 三、常见选项与用法 ##### 1. `du` 命令常用选项 - `-h, --human-readable`: 使用人类可读的形式表示文件大小 (如 K、M、G)[^5]。 - `-s, --summarize`: 只显示总计值而不列出每个子项。 - `-a, --all`: 列出所有文件目录的信息。 - `-c, --total`: 在最后加上总计数。 - `-i`: 显示 inode 的使用情况而非实际数据块[^3]。 ###### 示例代码 ```bash # 显示当前目录下的总大小 du -sh . # 显示当前目录下每个文件夹的具体大小 du -h --max-depth=1 . ``` ##### 2. `df` 命令常用选项 - `-h, --human-readable`: 类似于 `du` 的 `-h` 参数,使输出易理解。 - `-T`: 显示文件系统类型。 - `-k`: 以千字节(KB)为单位报告磁盘空间。 - `-t type`: 仅显示某种类型的文件系统。 - `-x type`: 排除某些类型的文件系统。 ###### 示例代码 ```bash # 查看所有挂载点的磁盘使用情况 df -h # 同时显示文件系统类型 df -Th ``` --- #### 四、注意事项 - 如果需要分析某个目录内部结构并找出大文件,则应优先考虑使用 `du` 命令- 对于监控服务器的整体存储状态而言,`df` 加适合因为可以快速获取全局视角的数据。 - 当涉及特殊需求比如只关心 iNode 数目而不是物理存储容量的时候可以选择附加相应标志位来调用上述工具之一。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值