一、du 命令简介

du(Disk Usage)用于统计文件和目录的磁盘使用情况,默认以 KB 为单位显示。它是排查磁盘空间问题的利器。


二、基础用法

1. 查看当前目录的磁盘使用情况

du
  • 显示当前目录下每个子目录的大小(KB)。

2. 人类可读格式(自动转换单位)

du -h
# 示例输出:
# 4.0K    ./Documents
# 8.0M    ./Downloads

3. 查看指定目录/文件的大小

du -h /path/to/directory_or_file

4. 仅显示总大小(不显示子目录)

du -sh /path/to/directory
  • -s:仅显示总计。
  • -h:人类可读格式。

三、高级用法

1. 显示目录及其子目录的详细大小

du -h --max-depth=1 /path
  • --max-depth=N:限制显示的目录层级(如 1 表示只显示一级子目录)。

2. 排除特定文件或目录

du -h --exclude="*.log" /path
  • --exclude="PATTERN":按通配符排除文件/目录。

3. 按文件大小排序

du -h /path | sort -h
  • sort -h:按人类可读的单位(K, M, G)排序。

4. 显示所有文件(包括隐藏文件)

du -ah /path
  • -a:显示所有文件(默认只显示目录)。

5. 显示磁盘使用总计

du -ch /path
  • -c:最后输出总计。

6. 仅显示超过指定大小的目录

du -h --threshold=100M /path
  • --threshold=SIZE:过滤显示大于 SIZE 的条目。

7. 显示文件的“表观大小”(实际大小)

du -h --apparent-size /path
  • --apparent-size:显示文件实际大小(而非占用的磁盘块大小)。

8. 结合时间筛选

du -h --time /path
  • --time:显示文件的最后修改时间。

四、实用场景示例

1. 快速找出大文件/目录

du -h / | sort -hr | head -n 20
  • 扫描根目录,按大小降序排列,显示前20个结果。

2. 统计日志目录总大小

du -sh /var/log

3. 排除缓存目录后统计

du -sh --exclude=/path/cache /path

五、注意事项

  1. 权限问题:若目录无权访问,使用 sudo

    sudo du -sh /root
    
  2. 性能影响:扫描大型目录(如 /)可能较慢,建议结合 --max-depth 限制层级。
  3. du 与 df 的区别

    • du:统计文件/目录的实际磁盘使用量。
    • df:统计文件系统的整体磁盘使用情况(更快速,但可能因挂载点导致统计差异)。

通过灵活组合参数,du 能帮助您高效定位磁盘空间占用问题。建议通过 man du 查看完整手册。

Copyright © https://yan-jian.com 2023 all right reserved更新时间: 2025-05-07 14:47:14

results matching ""

    No results matching ""