Glob 模式
Glob 是什么
glob
是一种文件匹配模式,全称 global,它起源于 Unix 的 bash shell 中,比如在 linux 中常用的 mv *.txt tmp/
中,*.txt
就使用到了这种模式。
Glob 有哪些用途
在计算机编程中,经常需要对文件或者文件夹进行操作,那么会经常涉及到一些文件或者文件夹的匹配操作,此时就是 Glob 模式大显身手的时候,比如上面的 mv
命令。
大家最熟悉的应用的地方可能给就是 git 中的 .gitignore
中的表达式了,它就是 Glob 模式的一个典型用法。
Glob 用法
以下是表达式的说明,注意 Glob 不匹配任何隐藏文件或文件夹。
模式 | 说明 |
---|---|
* |
匹配除了斜杠(/)之外的所有字符。 Windows上是斜杠(/)和反斜杠(\) |
** |
匹配零个或多个目录及子目录。不包含 . 以及 .. 开头的。 |
? |
匹配任意单个字符。 |
[seq] |
匹配 seq 中的其中一个字符。 |
[!seq] |
匹配不在 seq 中的任意一个字符。 |
\ |
转义符。 |
! |
排除符。 |
?(pattern_list) |
匹配零个或一个在 pattern_list 中的字符串。 |
*(pattern_list) |
匹配零个或多个在 pattern_list 中的字符串。 |
+(pattern_list) |
匹配一个或多个在 pattern_list 中的字符串。 |
@(pattern_list) |
匹配至少一个在 pattern_list 中的字符串。 |
!(pattern_list) |
匹配不在 pattern_list 中的字符串. |
[...] |
POSIX style character classes inside sequences. |
举例
- 匹配 docs 目录下及子目录所有 markdown 文件:
docs/**/*.md
- 匹配 大小写的 bin 文件夹:
[Bb]in
各个语言提供的库
- Javascript: https://github.com/isaacs/node-glob
- C#: https://github.com/kthompson/glob
- GO: https://github.com/gobwas/glob
没列出来的,一般语言本身的库提供的有相关功能。
本文地址:http://www.cnblogs.com/savorboard/p/glob.html
作者博客:Savorboard
本文原创授权为:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人