我有一个 Antbuild.xml
脚本,其中包含以下代码段:
<fileset dir="${project.home}/${project.lib}">
<include name="**/*.jar"/>
</fileset>
根据这个问题的答案和Bash 文档,双星号表示globstar
模式匹配:
globstar
如果设置,文件名扩展上下文中使用的模式 '**' 将匹配所有文件以及零个或多个目录和子目录。如果模式后跟“/”,则只有目录和子目录匹配。
这似乎是编写代码的人意味着它可以工作的意义:.jar
在项目库目录中找到所有文件,无论有多少目录深。
但是,代码通常在globstar
关闭设置的 Bash shell 中执行。在这种情况下,似乎应该将双星号解释为单个星号,这会破坏构建。尽管如此,构建执行得非常好。
是否有任何场景之外globstar
的 Bash shell 会以**
任何不同的方式解释*
?例如,extglob
仅设置是否可以区分两者?这方面的文档似乎很少。