> For the complete documentation index, see [llms.txt](https://book.bsdcn.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://book.bsdcn.org/man/man1/du.1.md).

# du.1

`du` — 显示磁盘使用统计

## 名称

`du`

## 概要

`du [--libxo] [-Aclnx] [-H | -L | -P] [-g | -h | -k | -m | --si] [-a | -s | -d depth] [-B blocksize] [-I mask] [-t threshold] [file]`

## 描述

`du` 实用程序显示每个文件参数以及以每个目录参数为根的文件层次结构中每个目录的文件系统块使用情况。如果未指定文件，则显示以当前目录为根的层次结构的块使用情况。

通常块使用情况与文件大小相近，但并非总是如此。对于最后一个块不完整的文件，大小会更大。该大小包括诸如间接块之类的任何元数据，但不包括 inode。对于稀疏文件或延迟将数据写入磁盘的文件系统，计数会小于文件大小。

选项如下：

**`--libxo`** 通过 libxo(3) 以多种人类和机器可读格式生成输出。有关命令行参数的详细信息，请参见 xo\_options(7)。

**`-A`** 显示表观大小而非磁盘使用量。在处理压缩卷或稀疏文件时很有用。

**`-B`** `blocksize` 以 `blocksize` 字节块为单位计算块计数。这不同于 `-h`、`-k`、`-m`、`--si` 和 `-g` 选项或设置 `BLOCKSIZE`，它给出所检查文件层次结构在具有给定 `blocksize` 的文件系统上需要多少空间的估计。除非在 `-A` 模式下，`blocksize` 会向上取整到 512 的下一个倍数。

**`-H`** 命令行上的符号链接会被跟随，文件层次结构中的符号链接不被跟随。

**`-I`** `mask` 忽略匹配指定 `mask` 的文件和目录。

**`-L`** 命令行上和文件层次结构中的符号链接都会被跟随。

**`-P`** 不跟随任何符号链接。这是默认行为。

**`-a`** 为文件层次结构中的每个文件显示一个条目。

**`-c`** 显示总计。

**`-d`** `depth` 为 `depth` 层目录深处的所有文件和目录显示条目。

**`-g`** 以 1073741824 字节（1 GiB）块为单位显示块计数。

**`-h`** “人类可读”输出。使用基于 1024 幂的单位后缀：Byte、Kilobyte、Megabyte、Gigabyte、Terabyte 和 Petabyte。

**`--si`** “人类可读”输出。使用基于 1000 幂的单位后缀：Byte、Kilobyte、Megabyte、Gigabyte、Terabyte 和 Petabyte。

**`-k`** 以 1024 字节（1 kiB）块为单位显示块计数。

**`-l`** 如果文件有多个硬链接，多次计数其大小。`du` 的默认行为是仅对有多个硬链接的文件计数一次。指定 `-l` 选项时，硬链接检查被禁用，这些文件会被计数（和显示）多次，次数等于它们被发现的次数。

**`-m`** 以 1048576 字节（1 MiB）块为单位显示块计数。

**`-n`** 忽略设置了用户“nodump”标志（`UF_NODUMP`）的文件和目录。

**`-r`** 生成关于无法读取的目录、无法打开的文件等的消息。这是默认情况。此选项仅为符合 -xpg4 标准而存在。

**`-s`** 为每个指定的文件显示一个条目。（等同于 `-d` `0`）

**`--si`** “人类可读”输出。使用基于 1000 幂的单位后缀：Byte、Kilobyte、Megabyte、Gigabyte、Terabyte 和 Petabyte。

**`-t`** `threshold` 仅显示大小超过 `threshold` 的条目。如果 `threshold` 为负，则仅显示大小小于 `threshold` 绝对值的条目。

**`-x`** 不遍历文件系统挂载点。

`du` 实用程序统计符号链接本身使用的存储空间，而非其引用的文件，除非指定了 `-H` 或 `-L` 选项。如果指定了 `-H` 或 `-L` 选项，则跟随的符号链接所使用的存储空间不会被计数（或显示）。`-H`、`-L` 和 `-P` 选项互相覆盖，命令的行为由最后指定的选项决定。

`-h`、`-k`、`-m` 和 `--si` 选项互相覆盖；最后指定的选项决定所使用的块计数单位。

## 环境变量

**`BLOCKSIZE`** 如果设置了环境变量 `BLOCKSIZE`，且未指定 `-h`、`-k`、`-m` 或 `--si` 选项，则块计数将以该块大小为单位显示。如果未设置 `BLOCKSIZE`，且未指定 `-h`、`-k`、`-m` 或 `--si` 选项，则块计数将以 512 字节块为单位显示。

## 实例

显示当前目录中所有文件的磁盘使用情况。输出为人类可读形式：

```sh
# du -ah
```

汇总当前目录的磁盘使用情况：

```sh
# du -hs
```

汇总特定目录的磁盘使用情况：

```sh
# du -hs /home
```

显示特定目录中所有 C 文件的名称和大小。最后还显示总计：

```sh
# du -ch /usr/src/sys/kern/*.c
```

## 参见

[df(1)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man1/df.1.md), chflags(2), fts(3), libxo(3), symlink(7), xo\_options(7), [quot(8)](https://github.com/FreeBSD-Ask/freebsd-man-sc/blob/main/man8/quot.8.md)

## 标准

`du` 实用程序符合 IEEE Std 1003.1-2008 ("POSIX.1") 规范。

标志 \[`-ABIPcdghlmnt`]、\[`--libxo`]、\[`--si`] 以及 `BLOCKSIZE` 环境变量是对该规范的扩展。

标志 \[`-r`] 被接受但被忽略，以兼容实现过时 -xcu5 标准的系统。

## 历史

`du` 实用程序及其 `-a` 和 `-s` 选项首次出现于 Version 1 AT\&T UNIX。

`-r` 选项首次出现于 AT\&T System III UNIX，自 FreeBSD 3.5 起可用。`-k` 和 `-x` 选项首次出现于 4.3BSD Reno，`-H` 首次出现于 4.4BSD。`-c` 和 `-L` 选项首次出现于 GNU fileutils；`-L` 和 `-P` 自 4.4BSD-Lite1 起可用，`-c` 自 FreeBSD 2.2.6 起可用。`-d` 选项首次出现于 FreeBSD 2.2，`-h` 首次出现于 FreeBSD 4.0。

## 作者

此版本的 `du` 由 Chris Newcomb 于 1989 年为 4.3BSD Reno 编写。


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://book.bsdcn.org/man/man1/du.1.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
