# 解析文件

[深层管道] 展开一组文件包含/排除通配符模式。

> [!NOTE]
> 此内容描述了 CodeQL CLI 的最新版本。 有关此版本的详细信息，请参阅 https://github.com/github/codeql-cli-binaries/releases 。
>
> 若要查看早期版本中此命令可用选项的详细信息，请在终端中使用 <span style="white-space: nowrap;">`--help`</span> 选项运行命令。

## 概要

```shell copy
codeql resolve files <options>... -- <dir>
```

## Description

\[深层管道] 展开一组文件包含/排除通配符模式。

该底层命令负责展开操作多个文件（由其路径标识）的子命令的命令行参数。 默认情况下，所有文件都包括在内，因此在没有任何筛选器参数的情况下运行此命令将收集目录中的所有文件。

`--include`、`--exclude` 和 `--prune` 选项都采用 glob 模式，这些模式可使用以下通配符：

* 单个“?”匹配除正斜杠/反斜杠以外的任何字符；
* 单个“\*”匹配除正斜杠/反斜杠以外的任何数量的字符；
* 模式“\*\*”匹配零个或多个完整的目录组件。

## 选项

### 主要选项

#### `<dir>`

要搜索的目录。

#### `--format=<fmt>`

选择输出格式，可选`text`_（默认）_ 或 `json`。

### 用于限制收集的文件集的选项

#### `--include-extension=<.ext>`

在搜索目录树中包含具有给定扩展名的所有文件。 通常，应在扩展名前面添加圆点。
例如，传递 `--include-extension .xml` 将包括扩展名为“.xml”的所有文件。 此选项与已否定的 `--include` 选项不兼容。

#### `--include=<glob>`

使用搜索目录中每个文件和目录的相对路径，在搜索目录树中包含与给定 glob 匹配的所有文件和目录。 如果 glob 以 `!` 字符开头，则改为排除匹配的文件和目录。

`--include` 选项按顺序处理，后续选项会覆盖先前的选项。 例如，`--include ** --include !sub/*.ts --include sub/main.*` 将包含 `sub/main.ts`（因为它被 `sub/main.*` 包含在内），排除 `sub/index.ts`（因为它被 `!sub/*.ts` 排除在外），并包含 `sub/test.js`（因为它被 `**` 包含在内，随后又不被排除在外。）

#### `--also-match=<glob>`

使用搜索目录中每个文件和目录的相对路径，要求所有结果也匹配给定的 glob。 此选项的结构和解释与 `--include` 相同，但它指定与 `--include` 一起应用的单独 glob 序列。

#### `--exclude=<glob>`

使用搜索目录中每个文件和目录的相对路径，排除与给定 glob 匹配的所有文件和目录。 此选项将覆盖所有 include 选项。 此选项与已否定的 `--include` 选项不兼容。

#### `--prune=<glob>`

使用搜索目录中每个文件和目录的相对路径，排除与给定 glob 匹配的所有文件和目录。 此选项将覆盖所有 include 选项。 此选项与已否定的 `--include` 选项不兼容。

#### `--size-limit=<bytes>`

排除大小超过给定限制的所有文件。 大小限制以字节为单位，或者单位是后缀为“k”的千字节 (KiB)、后缀为“m”的兆字节 (MiB) 和后缀为“g”的千兆字节 (GiB)。 此选项将覆盖所有 include 选项。

#### `--total-size-limit=<bytes>`

如果所有已解析文件的组合大小超过给定限制，则退出命令并显示错误。 大小限制以字节为单位，或者单位是后缀为“k”的千字节 (KiB)、后缀为“m”的兆字节 (MiB) 和后缀为“g”的千兆字节 (GiB)。

#### `--[no-]follow-symlinks`

遵循指向其目标的任何符号链接。

#### `--[no-]find-any`

最多查找一个匹配项（而不是所有匹配项）。

自 `v2.11.3` 起可用。

### 常用选项

#### `-h, --help`

显示此帮助文本。

#### `-J=<opt>`

\[高级] 向运行命令的 JVM 提供选项。

（请注意，无法正确处理包含空格的选项。）

#### `-v, --verbose`

以增量方式增加输出的进度消息数。

#### `-q, --quiet`

以增量方式减少输出的进度消息数。

#### `--verbosity=<level>`

\[高级] 明确将详细级别设置为 errors、warnings、progress、progress+、progress++、progress+++ 之一。 重写 `-v` 和 `-q`。

#### `--logdir=<dir>`

\[高级] 将详细日志写入指定目录中的一个或多个文件，生成的文件名包含时间戳和正在运行的子命令名称。

（要使用可以完全控制的名称编写日志文件，请根据需要提供 `--log-to-stderr` 并重定向 stderr。）

#### `--common-caches=<dir>`

\[高级] 控制磁盘上缓存数据的位置，这些数据将在 CLI 的多次运行之间保留，例如下载的 QL 包和编译的查询计划。 如果未明确设置，则默认为用户主目录中名为 `.codeql` 的目录；如果尚不存在，则会创建该目录。

自 `v2.15.2` 起可用。