У меня есть сценарий Ant build.xml
, который включает следующий фрагмент:
<fileset dir="${project.home}/${project.lib}">
<include name="**/*.jar"/>
</fileset>
Согласно ответам на этот вопрос и документация Bash, двойная звездочка указывает на globstar
соответствие шаблону:
globstar
Если установлено, шаблон «**», используемый в контексте расширения имени файла, будет соответствовать всем файлам и нулю или более каталогам и подкаталогам. Если за шаблоном следует символ «/», совпадают только каталоги и подкаталоги.
Кажется, именно в этом смысле тот, кто написал код, имел в виду, что он должен работать: найти все .jar
файлы в каталоге библиотеки проекта, независимо от того, сколько каталогов в глубину.
Однако код обычно выполняется в оболочке Bash, для которой параметр globstar
отключен. В этом случае кажется, что двойную звездочку следует интерпретировать как одну звездочку, что нарушит сборку. Тем не менее, сборка работает отлично.
Есть ли какой-либо сценарий за пределами globstar
, для которого оболочка Bash будет интерпретировать **
иначе, чем *
? Например, различает ли их только параметр extglob
? Документация по этому поводу кажется скудной.