What is the ** glob character?

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


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

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 :-)

Tags:

Glob

Gulp