什么是 Glob?

Glob 是一种使用通配符字符来指定文件名或路径集合的模式匹配语法。它起源于 Unix shell,现在广泛用于编程语言、构建工具和文件系统。

快速了解

全称Glob 模式 / 通配符匹配
创建时间1971 年(Unix glob 命令)
规范文档官方规范

工作原理

Glob 模式使用特殊字符来匹配多个文件或目录。星号(*)匹配任意字符序列,问号(?)匹配任意单个字符,方括号 [] 匹配字符集。扩展 glob 语法中的双星号(**)递归匹配目录。Glob 比正则表达式简单,但足以满足大多数文件匹配需求。它用于 .gitignore 文件、构建配置和命令行操作。

主要特点

  • * 匹配任意字符序列(路径分隔符除外)
  • ? 精确匹配一个字符
  • [] 匹配集合中的任意字符
  • ** 递归匹配目录(扩展 glob)
  • ! 或 ^ 否定字符集
  • 语法比正则表达式更简单

常见用途

  1. 构建工具中的文件选择(webpack、gulp)
  2. .gitignore 中的文件排除模式
  3. 命令行文件操作(ls *.txt)
  4. 测试框架中的测试文件发现
  5. 构建过程中的资源打包和复制

示例

loading...
Loading code...

常见问题

Glob 模式和正则表达式有什么区别?

Glob 模式更简单,专为文件路径匹配设计,使用 * 和 ? 等通配符。正则表达式更强大但也更复杂,支持量词、分组和前瞻等高级模式匹配。Glob 足以满足大多数文件操作需求,而正则表达式适用于复杂的文本处理。

Glob 模式中的双星号(**)是什么意思?

双星号(**)是扩展 glob 语法,用于递归匹配目录。例如,'src/**/*.js' 匹配 src 目录及其任意深度子目录中的所有 JavaScript 文件。

如何使用 Glob 模式排除文件?

在大多数工具中,可以使用感叹号(!)来否定模式。例如,在 .gitignore 中,'*.log' 后跟 '!important.log' 将忽略所有日志文件,但保留 important.log。否定模式必须在包含模式之后。

Glob 模式是否区分大小写?

Glob 模式的大小写敏感性取决于操作系统和使用的工具。在 Unix/Linux 系统上,glob 通常区分大小写,而在 Windows 上通常不区分。许多工具提供了显式控制大小写敏感性的选项。

Glob 模式中 * 和 ** 有什么区别?

单个星号(*)匹配单个路径段内的任意字符序列(不会跨越目录边界)。双星号(**)可以跨越目录边界匹配,允许递归匹配多个目录层级。

相关工具

相关术语

相关文章