什么是 * * globb 字符?

我的反应档案里有这条路径:

var path = {
HTML: 'src/index.html',
ALL: ['src/js/*.js', 'src/js/**/*.js', 'src/index.html'],
JS: ['src/js/*.js', 'src/js/**/*.js'],
MINIFIED_OUT: 'build.min.js',
DEST_SRC: 'dist/src',
DEST_BUILD: 'dist/build',
DEST: 'dist'
};

什么是双球字符?

我知道单球是什么,但双球是什么? 一个球

42344 次浏览

** matches any character including a forward-slash /
* matches any character except a forward-slash (to match just the file or directory name)

It's almost the same as the single asterisk but may consist of multiple directory levels.

In other words, while /x/*/y will match entries like:

/x/a/y
/x/b/y

and so on (with only one directory level in the wildcard section), the double asterisk /x/**/y will also match things like:

/x/any/number/of/levels/y

with the concept of "any number of levels" also including zero (in other words, /x/**/y will match /x/y as one of its choices).


As an aside, as much as I hate to credit the mainframe with anything, I believe this has been used since the earlist days of MVS to allow selection of datasets at multiple levels :-)

Like Grunt, the double ** is saying, "Look in all the subfolders within js and for all of the .js files."

You can actually refer here for the same:

https://www.codefellows.org/blog/quick-intro-to-gulp-js

It's usually used to indicate any number of subdirectories. So

src/js/**/*.js

Would match

src/js/files/*.js
src/js/more-files/*.js


etc
etc