分类
devops

glob and global

Glob 在现代英语中确实被视为一个完整的单词(尤其是在计算机科学领域),但它的起源极具技术色彩,且与 Global 有着直接的血缘关系。

它是完整单词吗?

  • 在技术语境下: 是的。它既可以作为名词(指代通配符模式,如 *.txt 是一个 glob),也可以作为动词(指代匹配过程,例如 “The shell globs the pattern”)。
  • 在日常语境下: 它指的是“一团”或“一滴”半固体物质(如 a glob of ketchup),但这个含义与计算机里的 glob 无关。

它与 Global 的关联

“Glob” 实际上是 Global 的缩写,其历史可以追溯到 1970 年代早期的 Unix 第一版 (V1)

起源故事
在最早期的 Unix 中,lsecho 等命令本身并不具备处理通配符(如 *?)的能力。
为了实现通配符匹配,系统需要调用一个独立的辅助程序,这个程序位于 /etc/glob

  • 全称: Global Command
  • 逻辑: 它的作用是“全局地(Globally)”在文件系统中寻找匹配项,然后将匹配到的列表传回给主命令。

随着技术演进,这个独立程序的功能被集成到了 Shell(如 Bash)的内部,成为了一个内置功能。虽然 /etc/glob 消失了,但程序员们已经习惯了把这个过程称为 Globbing


语义演变对比

维度 Global (全局) Glob (通配符)
词性 形容词 名词 / 动词
含义核心 范围(全体、整个) 模式(匹配、展开)
计算机语境 全局变量、全局搜索 通配符匹配(文件名展开)
关系 母体:提供了“在整个范围内查找”的语境。 衍生:特指通过通配符进行的路径名扩展。

为什么现在不叫 Global 了?

现在我们区分这两个词是为了避免歧义
* 如果你说 “Global search”,大家会认为你是在整个文件内容或数据库里查找。
* 如果你说 “Globbing”,经验丰富的工程师(像你一样处理 Bash 脚本的开发者)立刻就会明白你是在谈论 *?[] 这些文件路径展开逻辑。

总结:

globglobal 的一个技术变体。它从一个名为 “global” 的外部辅助程序,演变成了今天程序员口中那个指代“通配符展开”的独立单词。