文件路径中双星号(**)的含义是什么?

70

我在Stack Overflow上阅读了这里关于路径中的**的内容,例如:

src/js/**/*.js

我想问一下 " ** " 是否表示 "任何嵌套的目录"?


5
如果我没记错的话,src/js/**/*.js 匹配 src/js/ 目录下任意深度的所有 .js 文件,不考虑子目录结构。 - Jeremy Thille
可能是[文件路径中的两个星号]的重复问题(https://dev59.com/AWoy5IYBdhLWcg3wdt4L)。 - Liam
1
可能是什么是** glob字符?的重复。 - paxdiablo
3个回答

82
在这种情况下,双星号表示当前文件夹中的所有文件夹,其中当前文件夹是src/js
因此,完整地说,查找位于src/js子文件夹中的所有扩展名为.js的文件

31
双星号是占位符或指令,用于递归解释器遍历文件和文件夹。这是一个简单的递归通配符,而只有一个星号表示不使用递归时的所有内容。
'** / *. js'; 从此处开始,获取所有扩展名为.js的文件。 'lib / ** / *. js'; 获取文件夹lib及其子文件夹中所有扩展名为.js的文件。 'js / **'; 获取文件夹js及其子文件夹中的所有文件。

谢谢。真是太疯狂了,Google的SEO居然找不到一个链接,当我搜索这个最普遍的情况时。 - undefined

0
Glob模式基本上充当通配符。**通配符是递归的,并且作为路径元素工作,可以匹配零个或多个路径元素。例如,java/**/*.java可以匹配java/Main.java和java/com/android/Main.java这两个模式。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接