glob简介

作者: IOneStar | 来源:发表于2018-01-12 19:19 被阅读14次

首次发表在个人博客

前言

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 模式匹配
  • 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

参考

node-glob
node-glob使用记

相关文章

网友评论

    本文标题:glob简介

    本文链接:https://www.haomeiwen.com/subject/istqoxtx.html