linux命令大全du
linux命令大全du详细介绍
在 Linux 中,du(Disk Usage)命令用于查看目录或文件的磁盘占用空间。以下是其常用选项和用法的详细说明:
基本语法
bash
du [选项] [文件或目录] # 若不指定目录,默认检查当前目录
常用选项
| 选项 | 说明 |
|---|---|
-a, --all |
显示所有文件(包括普通文件)的大小,而非仅目录。 |
-h, --human-readable |
以人类可读的格式显示(如 KB、MB、GB),替代默认的块大小(512 字节)。 |
-s, --summarize |
仅显示指定目录的总大小(不显示子目录细节)。 |
-d <n>, --max-depth=<n> |
限制目录递归的深度为n级(n=0表示当前目录,n=1显示一级子目录)。 |
-c, --total |
显示所有目录 / 文件的总和(在最后追加一行 “总计”)。 |
-x, --one-file-system |
跳过不同文件系统的目录(例如不进入挂载的分区)。 |
--exclude=<模式> |
排除匹配指定模式的文件或目录(支持通配符,如--exclude="*.log")。 |
-l, --count-links |
计算符号链接指向的文件的大小(默认不计算,仅显示符号链接本身的大小)。 |
-m, -k |
分别以 MB、KB 为单位显示(替代-h的自动适配)。 |
常见用法示例
1.
查看当前目录下各子目录的大小(人类可读)
bash
du -h
- 输出示例:plaintext
4.0K ./docs8.0K ./logs
1.2G ./data
1.2G . # 当前目录总大小(等同于 du -sh)
2.
查看指定目录的总大小
bash
du -sh /path/to/directory # 例如查看 /var/log 的总大小
- 输出:
500M /var/log
3.
显示所有文件(包括普通文件)的大小
bash
du -ah # 显示当前目录下所有文件和目录的大小
4.
限制目录递归深度(如仅显示一级子目录)
bash
du -h -d 1 # 或 du -hd 1
5.
按大小排序,查找大文件 / 目录
bash
du -ah | sort -rh | head -n 10 # 列出当前目录下最大的10个文件/目录
-rh:逆序(从大到小)排序,人类可读格式。
6.
排除特定文件或目录
bash
du -h --exclude="*.log" --exclude="node_modules" # 排除.log文件和node_modules目录
7.
查看多个目录的总大小
bash
du -sh /dir1 /dir2 /dir3 # 同时查看多个目录的总大小
- 输出:plaintext
200M /dir1500M /dir2
1.5G /dir3
8.
以 MB 为单位显示
bash
du -m # 或 du --max-depth=1 -m 查看一级子目录大小(MB)
注意事项
du统计的是文件实际占用的磁盘空间(考虑硬链接,但不包含符号链接指向的文件,除非用-l)。- 若权限不足,会提示
Permission denied,需用sudo获取权限。 - 对于符号链接目录,
du默认不会进入,除非明确指定符号链接指向的目录路径。
通过组合不同选项,du能高效帮助你分析磁盘空间使用情况,尤其是在清理大文件或排查存储问题时非常实用。