跳至主要内容

解析文件

[深层 plumbing] 展开一组文件包含/排除的 glob 模式。

谁可以使用此功能?

CodeQL 可用于以下仓库类型

本文内容

注意

此内容描述了 CodeQL CLI 的最新发布版本。有关此版本的更多信息,请参阅 https://github.com/github/codeql-cli-binaries/releases

要查看早期版本中此命令可用的选项详情,请在终端中使用 --help 选项运行该命令。

概要

Shell
codeql resolve files <options>... -- <dir>

描述

[深层 plumbing] 展开一组文件包含/排除的 glob 模式。

此 plumbing 命令负责展开对多个文件(通过其路径标识)进行操作的子命令的命令行参数。默认情况下,包含所有文件,因此在没有任何过滤参数的情况下运行此命令将收集目录中的所有文件。

选项 --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 相同,但指定了一组独立的 glob,它们会与 --include 共同作用。

--exclude=<glob>

排除所有匹配给定 glob 的文件和目录,使用相对于搜索目录的每个文件和目录的相对路径。此选项会覆盖所有包含选项。此选项与取反的 --include 选项不兼容。

--prune=<glob>

排除所有匹配给定 glob 的文件和目录,使用相对于搜索目录的每个文件和目录的相对路径。此选项会覆盖所有包含选项。此选项与取反的 --include 选项不兼容。

--size-limit=<bytes>

排除所有大小超过给定限制的文件。大小限制以字节为单位,或使用后缀 “k” 表示 kibibytes (KiB)、后缀 “m” 表示 mebibytes (MiB)、后缀 “g” 表示 gibibytes (GiB)。此选项会覆盖所有包含选项。

--total-size-limit=<bytes>

如果所有解析文件的总体大小超过给定限制,命令将以错误退出。大小限制以字节为单位,或使用后缀 “k” 表示 kibibytes (KiB)、后缀 “m” 表示 mebibytes (MiB)、后缀 “g” 表示 gibibytes (GiB)。

遵循任何符号链接至其目标。

--[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 起可用。

© . This site is unofficial and not affiliated with GitHub, Inc.