在 Linux 系统管理中,磁盘空间的精确管理是确保系统稳定运行的关键环节。当我们遇到磁盘空间不足、系统响应缓慢或存储资源紧张等问题时,准确找出占用磁盘空间最多的文件和目录就显得尤为重要。du 命令(英文全称:disk usage)正是解决这一难题的强大工具。它能够递归地计算文件和目录所占用的磁盘空间,帮助我们快速定位'磁盘杀手',为系统优化和存储规划提供坚实的数据支持。
du 命令简介
du 命令用于估算文件和目录的磁盘使用量。它会递归地遍历文件系统,计算每个文件和目录所占用的磁盘块数,并以易于理解的方式展示出来。无论是排查大文件、优化存储空间,还是进行容量规划,du 都是系统管理员和普通用户不可或缺的利器。
为什么使用 du?
- 精准定位:准确找出占用磁盘空间最多的文件和目录。
- 故障排查:快速识别导致磁盘空间不足的原因。
- 性能优化:通过分析文件大小优化系统性能。
- 容量规划:为未来的存储需求提供数据依据。
- 自动化监控:在脚本中用于磁盘使用情况的监控和告警。
运行原理
du 命令通过读取文件系统的元数据来计算磁盘使用情况。它会递归地遍历指定目录下的所有子目录和文件,累加每个文件的大小,并最终给出总计。需要注意的是,du 默认会处理硬链接,避免重复计算同一文件的多次引用。
基础用法与常用参数
显示当前目录及子目录占用
最基础的用法是直接运行 du 命令,显示当前目录及其子目录的磁盘占用情况。默认以 1K 块为单位。
$ du ./subdir1
8 ./subdir1
$ du ./subdir2
12 ./subdir2
指定目录查看
可以指定特定目录来查看其磁盘占用情况。
$ du /home/user
4 /home/user/subdir1
8 /home/user/subdir2
12 /home/user
显示所有文件占用
使用 -a 选项可以显示指定目录下所有文件和目录的占用情况,而不仅仅是目录本身。
$ du -a /home/user
4 /home/user/subdir1/file1.txt
8 /home/user/subdir2/file2.txt
4 /home/user/subdir1
8 /home/user/subdir2
12 /home/user
人类可读格式
使用 -h 选项可以将数字转换为更易读的格式(K, M, G, T),这是日常使用中最常用的参数。
$ du -h /home/user
4.0K /home/user/subdir1/file1.txt
8.0K /home/user/subdir2/file2.txt
12K /home/user
关键参数详解
-
-s(summary):只显示总计,不列出子目录详情。适合快速查看某个文件夹的总大小。$ du -s /home/user 12K /home/user -
(total):在输出末尾显示所有文件和目录的总计。


