glob 介绍

2017-08-15 17:44:21

glob 最早是出现在类Unix系统的命令行中, 是用来匹配文件路径的。比如,lib/**/*.js 匹配 lib 目录下所有的 js 文件。

除了在命令行中,我们在程序中也会有匹配文件路径的需求。于是,很多编程语言有了对 glob 的实现 ,如 Python 中的 glob 模块; php 中的 glob 方法。

有了 glob,匹配文件路径变的 so easy~


oh-my-glob

使用场景

任务管理

如,我们要将 lib 目录下所有的 js 文件下都进行压缩。我们用 Gulp 可以这么写:

var uglify = require('gulp-uglify');
 gulp.task('compress', function() {
  return gulp.src('lib/**/*.js') // 选则 lib 下的所有 js 文件
    .pipe(uglify()) // 压缩
    .pipe(gulp.dest('dist')); // 将压缩后的文件输出到 dist 目录下
});

命令行

命令行中很多命令都可以用 glob。 如

grep '学习' *.md

上面目录做的是,从当前目录中查找文件内容中包含"学习",并且文件格式为 md 的文件。

匹配规则

不同语言的 glob 库支持的规则会略有不同。下面是 node-glob 的匹配规则。

  • * 匹配任意 0 或多个任意字符

  • ? 匹配任意一个字符

  • [...] 若字符在中括号中,则匹配。若以 !^ 开头,若字符不在中括号中,则匹配

  • !(pattern|pattern|pattern) 不满足括号中的所有模式则匹配

  • ?(pattern|pattern|pattern) 满足 0 或 1 括号中的模式则匹配

  • +(pattern|pattern|pattern) 满足 1 或 更多括号中的模式则匹配

  • *(a|b|c) 满足 0 或 更多括号中的模式则匹配

  • @(pattern|pat*|pat?erN) 满足 1 个括号中的模式则匹配

  • ** 跨路径匹配任意字符



作者:九彩拼盘
链接:http://www.jianshu.com/p/ce7cf53274bb
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


  • 2020-11-30 09:04:02

    js中set和get方法

    1. get和set是方法,因为是方法,所以可以进行判断 2. get一般是要返回的;而set是设置,不用返回 3. 如果调用对象内部的属性约定的命名方式是变量名前加_

  • 2020-12-01 16:10:12

    IntelliJ IDEA之代理配置 anyproxy

    网络号,真是太爽了,真的,如果又了好的网络,开发真是事半功倍,所以,大家开发前,一定要把自己的网络给整好。 会给你节省不少时间呢。

  • 2020-12-01 16:14:54

    HTTP状态码429的含义

    发生429是服务器接口并发太多引起的,可根据代码进行修改,放开限制次数

  • 2020-12-01 16:19:26

    vue中动画分布解析

    enter, enter-active, enter-active-to, (开始 进入阶段的)第1帧 属性值,到 (默认属性值 的过渡阶段),移除enter动画, leave, leave-active, leave-active-to (开始 离开 阶段的)第1帧 默认属性值,到 (属性值 的过渡阶段),移除leave动画

  • 2020-12-01 16:21:47

    Meteor与express结合开发

    Meteor本质上是一个已经公开了连接 http服务器的节点应用程序,这意味着您可以像下面这样定义服务器路由:,如果您坚持使用Express,则可以将Express路由注册为Connect中间件,如下所示:

  • 2020-12-01 16:25:32

    nuxtjs引入jquery

    nuxt引入jQuery库 nuxtjs如何添加 Webpack 插件?