一、基础显示选项
**-a / --all**
功能:显示目录中所有文件和子目录的磁盘使用情况(默认仅显示目录)
示例:
bash
du -a /home/user # 显示/home/user下所有文件及子目录的大小
**-b / --bytes**
功能:以字节为单位显示大小(默认单位为KB)
示例:
bash
du -b log.txt # 显示log.txt的字节大小
**-c / --total**
功能:在输出末尾添加所有目录和文件的总和
示例:
bash
du -c /var/log /var/tmp # 显示两个目录的总和
**-h / --human-readable**
功能:以K/M/G为单位自动换算,提升可读性(默认单位为KB)
示例:
bash
du -h /home/user # 输出类似 “1.2G /home/user”
**-s / --summarize**
功能:仅显示指定目录的总大小,不展开子目录
示例:
bash
du -sh /var/log # 显示/var/log的总大小
二、目录与文件系统控制
**-x / --one-file-system**
功能:仅统计同一文件系统下的目录,跳过挂载点外的目录
示例:
bash
du -x /mnt/nfs # 仅统计/mnt/nfs下的本地磁盘使用
**-L / --dereference**
功能:显示符号链接指向的实际文件大小(默认跟随符号链接)
示例:
bash
du -L /path/to/symlink # 显示符号链接目标文件的大小
**–max-depth=N**
功能:限制递归深度(N为目录层级数)
示例:
bash
du -h --max-depth=2 /etc # 显示/etc及其一级子目录的大小
三、高级过滤与输出控制
**–exclude=PATTERN**
功能:排除匹配指定模式的文件或目录(如 .log)
示例:
bash
du -sh --exclude=.log /var/log # 排除.log文件后统计
**–exclude-from=FILE**
功能:从文件中读取排除规则(每行一个模式)
示例:
bash
echo “*.tmp” > exclude.txt
du -sh --exclude-from=exclude.txt /path # 排除/tmp文件
**-S / --separate-dirs**
功能:显示目录大小时不包含子目录内容
示例:
bash
du -S /home/user # 显示/home/user目录本身的大小(不含子目录)
四、单位与块大小控制
**-k / --kilobytes**
功能:强制以KB(1024字节)为单位显示
示例:
bash
du -k /var/log # 输出单位为KB
**-m / --megabytes**
功能:强制以MB(1024 * 1024字节)为单位显示
示例:
bash
du -m /var/log # 输出单位为MB
**-B SIZE**
功能:自定义块大小(如 1M、1G)
示例:
bash
du -B 1G /var/log # 以1GB为单位显示
五、其他实用选项
**–apparent-size**
功能:显示文件或目录的逻辑大小(而非实际磁盘占用)
示例:
bash
du --apparent-size -h /path # 显示文件实际大小(如稀疏文件)
**–inodes**
功能:统计inode使用情况(排查inode耗尽问题)
示例:
bash
du --inodes /var/log # 显示/var/log的inode使用量
**-l / --count-links**
功能:重复计算硬链接文件的大小
示例:
bash
du -l /path # 统计硬链接文件多次
六、复合条件查询
逻辑运算符
-a(与)、-o(或)、!(非)
示例:
bash
du -ah --exclude=.log --max-depth=2 /var # 排除.log文件,显示两级目录
正则表达式匹配
**–exclude=PATTERN** 支持通配符(、?、[])
示例:
bash
du -sh --exclude=“.tmp” /path # 排除所有.tmp文件
七、引用说明
基础选项与示例:
高级用法与文件系统控制:
完整手册可通过 man du 查看。
2575

被折叠的 条评论
为什么被折叠?



