Glob模式

一、Glob 是什么?
glob 是一种文件匹配模式,全称 global,它起源于 Unix 的 bash shell 中,比如在 linux 中常用的 mv *.txt tmp/ 中,*.txt 就使用到了这种模式。

二、Glob 有哪些用途?

在计算机编程中,经常需要对文件或者文件夹进行操作,那么会经常涉及到一些文件或者文件夹的匹配操作。大家最熟悉的应用的地方可能给就是 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

没列出来的,一般语言本身的库提供的有相关功能。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容