From the 1.10 draft release notes:
> All wildcards apply to full path segments only, i.e. * never matches
> /, except for the case where /**/ matches zero or more path segments.
> For example, /*/**/* will match any path which contains at least
> 2 segments and is equivalent to /**/*/* as well as /*/*/**.
Are «/*/**/*» «/**/*/*» «/*/*/**» really equivalent? I would have
expected the first two to match any node except / and /'s immediate
children, but I wouldn't expect the third form to match /trunk/iota
where iota is a file, since the pattern has a trailing slash after the
non-optional second component.
Testing this in
cd $(mktemp -d)
mkdir -p foo/bar
, I see that neither vim nor zsh finds any matches for */*/**, meaning
they don't interpret ** as "zero or more" path components in this
pattern. I suppose they only treat ** in this way when it appears with
slashes immediately before and after it.
Received on 2017-03-15 11:00:56 CET