【发布时间】:2016-05-05 19:02:24
【问题描述】:
我有一个 Ant build.xml 脚本,其中包含以下 sn-p:
<fileset dir="${project.home}/${project.lib}">
<include name="**/*.jar"/>
</fileset>
根据this question和Bash documentation的答案,双星号表示globstar模式匹配:
globstar如果设置,文件名扩展上下文中使用的模式“**”将匹配所有文件以及零个或多个目录和子目录。如果 该模式后跟一个“/”,只有目录和子目录 匹配。
这似乎是编写代码的人意味着它可以工作:在项目库目录中找到所有.jar文件,无论有多少目录。
但是,代码通常在 Bash shell 中执行,globstar 设置已关闭。在这种情况下,似乎应该将双星号解释为单个星号,这会破坏构建。尽管如此,构建执行得非常好。
在globstar 之外的任何场景中,Bash shell 是否会以与* 不同的方式解释**?例如,extglob 设置是否单独区分两者?这方面的文档似乎很少。
【问题讨论】:
标签: bash ant wildcard glob extglob