首次发表在个人博客
前言
glob是shell使用的路径通配符,类似于正则表达式,但是与正则表达式不完全相同,在linux操作中如文件匹配等等已经使用了glob通配符;
语法和使用
- *:匹配一个路径部分中0或多个字符, 注意不匹配以.开始的路径,比如.a
- **: 匹配0个或多个子文件夹
- ?:匹配一个字符
- {a,b}: 匹配a或者b, a和b也是通配符,可以由其他通配符组成
- !: 排除文件,如!a.js表示排除文件a.js
glob非常强大的用途在于路径匹配,大部分的平台和开发语言都会在配置中使用glob路径匹配,其普遍性几乎使其成为一种标准。
实例
1.基于node的gulp时遇到glob匹配文件路径
获取js目录下的所有js文件.(不包括以'.'开头的文件)
//*:匹配路径中某部分:0个或多个字符
glob("js/*.js",function (er, files) {
console.log(files)
})
2..gitignore
中遇到glob匹配文件路径
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
.gitigore的格式规范
- 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配
- 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
网友评论