du是什么?

duDisk Usage的缩写,是 Linux系统中用于查看文件系统中目录或文件的磁盘使用情况的工具。它可以帮助你了解文件系统中哪些文件或目录占用了较多的磁盘空间。

官方文档:https://www.gnu.org/software/coreutils/manual/html_node/du-invocation.html#du-invocation

du命令格式

du [选项] [目录或文件名]

常用选项

  • -a: 显示目录中所有文件以及文件夹大小

  • -h: 以 Kb、Mb 、Gb 等易读的单位显示大小

  • --si: 类似 -h 选项,但是计算是用 1000 为基数而不是1024

  • -s: 显示目录总大小

  • -d: 是 --max-depth=N 选项的简写,表示深入到第几层目录,超过指定层数目录则忽略

  • -c: 除了显示目录大小外,额外一行显示总占用量

  • --time: 显示每一个目录下最近修改文件的时间

  • -t: 是 --threshold=SIZE 的简写,过滤掉小于 SIZE 大小的文件以及目录

  • --exclude=PATTERN:过滤与PATTERN匹配的文件名或者目录名

日常工作常用命令

某个目录及其子目录的总大小

du -sh /path/path

仅显示某个目录下的直接子目录的大小

du -lh --max-depth=1 /path/to/directory

递归地查找所有大于一定大小的文件

find /path/to/directory -type f -size +100M -exec du -h {} \;

查找占用空间最大的前 N 个文件或目录

du -ah /path/to/directory | sort -n -r | head -n 10