为什么Ruby的fnmatch不匹配子目录中带有FNM_PATHNAME的文件?

cgh8pdjw  于 2023-05-22  发布在  Ruby
关注(0)|答案(1)|浏览(188)

Gitlab CI将以下代码用于globs:

File.fnmatch?(glob, path, File::FNM_PATHNAME | File::FNM_DOTMATCH | File::FNM_EXTGLOB)

如果我想匹配一个目录下的所有文件和文件夹,我认为你必须这样做:

foo/*
foo/**/*

太糟了。我以为这样能行:

foo/**

但是它只在没有FNM_PATHNAME的情况下工作。Ruby文档对此非常糟糕。这到底是怎么回事是否存在一个匹配foo/a * 和 * foo/a/b的模式?

voj3qocg

voj3qocg1#

好了,结果是,只有当你有FNM_PATHNAME时,foo/**/*才匹配foo/a *。

相关问题