Administrator
Published on 2024-06-09 / 26 Visits
0

du 命令详解

du 命令会逐个显示每个 文件 (默认情况下为当前目录) 的磁盘使用情况。 磁盘使用情况以块为单位显示,除非环境变量 POSIXLY_CORRECT 已设置,在这种情况下,默认情况下会使用 1024 字节的块 (请参阅 -k 选项)。

如果 文件 是目录,则会递归地显示其所有子目录的大小。

常用:

du -h -d 1 /dir

选项:

  • -0, --null: 以 NUL 字符而不是换行符分隔文件名。

  • -a, --all: 显示所有文件和目录的大小,而不仅仅是目录。

  • --apparent-size: 以字节为单位打印每个文件的表观大小,而不是磁盘使用情况。 表观大小是文件中数据块的数量乘以文件系统块大小的结果,它可能大于或小于文件的实际大小。

  • -B, --block-size=SIZE: 使用 SIZE 字节的块大小。 SIZE 可以是以下格式之一:

    • 数字

    • 带有后缀的数字,表示乘数:

      • KB 1000

      • K 1024

      • MB 1000*1000

      • M 1024*1024

      • GB 1000*1000*1000

      • G 1024*1024*1024

      • 等等,对于 TPEZY

  • -b, --bytes: 相当于 --apparent-size --block-size=1

  • -c, --total: 在所有参数之后打印总计。

  • -D, --dereference-args: 将命令行参数中给出的符号链接取消引用。

  • -d, --max-depth=N: 仅打印 N 级目录深度内的信息。 -d 0-d 1 相同。

  • --files0-from=F: 从文件 F 中读取以 NUL 字符结尾的文件名列表,并计算这些文件的大小。

  • -H: 相当于 --dereference-args (-D)

  • -h, --human-readable: 以人类可读的格式打印大小 (例如,1K 234M 2G)。

  • --inodes: 打印 inode 使用情况信息,而不是块使用情况。

  • -k: 相当于 --block-size=1K

  • -L, --dereference: 如果参数是指向目录的符号链接,则跟随该链接。

  • -l, --count-links: 如果文件有多个硬链接,则多次计算其大小。

  • -m: 相当于 --block-size=1M

  • -P, --no-dereference: 不跟随任何符号链接 (这是默认行为)。

  • -S, --separate-dirs: 不包含子目录的大小在目录的大小中。

  • -s, --summarize: 仅显示每个参数的总计。

  • --si: 与 -h 类似,但使用 1000 而不是 1024 的幂。

  • --time: 显示访问时间,而不是磁盘使用情况。

  • --time=WORD: 显示指定时间,而不是磁盘使用情况。 WORD 可以是以下之一:

    • atimeaccessuse: 文件上次访问的时间。

    • ctimestatus: 文件状态上次更改的时间。

    • mtimemodify: 文件内容上次修改的时间。

  • -X, --exclude-from=FILE: 排除与 FILE 中指定的模式匹配的文件和目录。

  • --exclude=PATTERN: 排除与 PATTERN 匹配的文件和目录。

  • -x, --one-file-system: 跳过位于不同文件系统上的目录中的文件。

  • --help: 显示帮助信息并退出。

  • --version: 输出版本信息并退出。

示例:

  • 显示当前目录的磁盘使用情况:

    du
  • 显示 /home 目录的磁盘使用情况,以人类可读的格式表示:

    du -h /home
  • 显示当前目录及其子目录中所有文件的磁盘使用情况,以字节为单位:

    du -ab
  • 显示当前目录的磁盘使用情况,最大深度为 2:

    du -d 2