linux系统du命令
linux系统du命令详细介绍
在 Linux 系统中,du(Disk Usage)命令用于查看目录或文件的磁盘占用情况,是管理磁盘空间的常用工具。以下是其核心用法和典型场景:
一、基础用法
- 查看当前目录总大小(含子目录)
bash - 查看指定目录 / 文件的大小(递归显示子目录)
bash/var/log~/Downloads
二、常用选项(解决实际问题)
| 场景需求 | 命令示例 | 说明 | ||
|---|---|---|---|---|
| 快速定位大目录(1 级子目录) | du -h --max-depth=1 /path |
仅显示当前目录下一级子目录的大小(避免深层递归) | ||
| 查看当前目录下最大的 10 个文件 | `du -a /path | sort -nr -k1 | head -n10` | 结合排序和截断,快速找到大文件(-a 包含文件,默认只查目录) |
| 排除特定目录 / 文件 | du -h --exclude='*.log' /var |
忽略日志文件(支持通配符,复杂排除可用 find + du 组合) |
||
| 树形结构可视化 | du -h --max-depth=2 |
显示两层目录结构,直观查看层级占用(适合手动排查) | ||
| 仅显示文件(非目录) | du -a --max-depth=0 /path |
查看指定目录下所有文件的大小(不包含子目录) |
三、典型场景示例
场景 1:清理磁盘时,快速找到最大的目录
bash
/home/*--max-depth /
场景 2:排查某目录下的大文件
bash
/var/lib/docker
场景 3:忽略缓存文件,统计项目真实大小
bash
四、注意事项
- 递归深度:深层目录(如
/根目录)慎用无限制递归,可能导致卡顿。 - 软链接:默认会跟随软链接统计,加
--dereference可显示真实路径占用。 - 性能:对极多小文件的目录(如
/proc),du可能很慢,改用find更高效。
通过组合 du 与 sort、grep 等工具,能高效解决 90% 以上的磁盘空间分析问题。如果需要图形化界面,可尝试 ncdu(需额外安装,交互更直观)。