du-磁盘占用管理

du命令是Disk Usage的缩写,用于估算和显示文件系统中的文件和目录的磁盘使用情况。

语法

du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F

参数

  • -a, --all: 对所有文件计数,包括目录。
  • --apparent-size: 打印表观大小,而不是磁盘使用量。虽然表观大小通常较小,但由于稀疏文件的孔洞、内部碎片和间接块,其可能更大。
  • -B, --block-size=SIZE: 在打印之前按SIZE缩放大小。例如,-BM1,048,576字节为单位打印大小。
  • -b, --bytes: 相当于 --apparent-size --block-size=1
  • -c, --total: 显示总计。
  • -D, --dereference-args: 只解除命令行中列出的符号链接的引用。
  • --files0-from=F: 汇总文件F中指定的以空字节终止的文件名的磁盘使用情况,如果F-,则从标准输入读取名字。
  • -H: 相当于 --dereference-args (-D)
  • -h, --human-readable: 以人类可读的格式打印大小,舍入数值并使用缩写。例如,1K234M2G等。
  • --si: 类似于 -h,但使用1000的幂,而不是1024
  • -k: 类似于 --block-size=1K
  • -l, --count-links: 多次计算大小(如果有硬链接)。
  • -m: 类似于 --block-size=1M
  • -L, --dereference: 引用所有符号链接。
  • -P, --no-dereference: 不追踪任何符号链接(这是默认设置)。
  • -0, --null: 用0字节而不是换行符结束每个输出行。
  • -S, --separate-dirs: 不包括子目录的大小。
  • -s, --summarize: 仅针对每个参数显示总计。
  • -x, --one-file-system: 跳过不同文件系统上的目录。
  • -X, --exclude-from=FILE: 排除与FILE中的任何模式匹配的文件。
  • --exclude=PATTERN: 排除与PATTERN匹配的文件。
  • -d, --max-depth=N: 仅在目录(或文件,带有--all时)位于命令行参数以下的N个或更少级别时才打印总计,--max-depth=0等同于--summarize
  • --time: 显示目录中任何文件或其子目录的最后修改时间。
  • --time=WORD: 按WORD而不是修改时间显示时间:atime, access, use, ctimestatus
  • --time-style=STYLE: 使用样式STYLE显示时间:full-iso, long-iso, iso,或+格式(FORMAT的解释类似于date的格式)。
  • --help: 显示帮助信息并退出。
  • --version: 输出版本信息并退出。

示例

显示当前目录及其子目录所占的磁盘空间。

du -h

仅显示某个特定目录的磁盘使用情况,默认会递归地显示目录使用情况。

du -h /home

递归地显示某个目录下每个文件和子目录所占的空间,并最终汇总显示总使用空间。

du -ah /home

显示当前目录下的一级子目录的空间使用情况。

du -h -d 1

显示当前目录的空间占用。

du -h -d 0

显示文件系统的磁盘空间使用情况disk free

df -h

显示当前目录下的所有文件和子目录的磁盘使用情况,并按照大小排序。

du -a -h -d 1 | sort -h -r

显示当前目录下的所有文件和子目录的磁盘使用情况,排除部分文件夹,并按照大小排序。

du -a -h -d 1 --exclude=.git --exclude=node_modules | sort -h -r
find . -maxdepth 1 \( -path ./.git -o -path ./node_modules \) -prune -o -exec du -sh {} + | sort -h -r # Mac

仅检查某个文件的大小。

du -h tsconfig.json

使用grep过滤查看某个文件的体积,这在符号连接中比较有用。

ls -l -h tsconfig.json
du -a -h -d 1 | grep tsconfig.json
find . -maxdepth 1 -print0 | xargs -0 du -sh | grep tsconfig.json # Mac

每日一题

参考