Re: [BUG] ls-files '**' globstar matches one or more directories instead of zero or more directories
- From
- Alistair Buxton <a.j.buxton@gmail.com>
- Date
- Apr 16, 2017, 16:29 UTC
- Message-ID
- <CAO-Op+Fd9x7O66skWWy5TkTfMst7ohUiw3U9MMujyvYsjWnFSg@mail.gmail.com>
- In-Reply-To
- <CACsJy8DQWrLZF3wUQ5WF2FfriM6ko8Zwm_x5ErEEWTE6n5rayw@mail.gmail.com>
On 16 April 2017 at 12:25, Duy Nguyen <pclouds@gmail.com> wrote:
> git ls-files ':(glob)**/*' > > Without that '**' is a normal '*' and matching just subdirs is expected.
But '*/' should match exactly one subdirectory deep. Instead it matches one more more subdirectories.
Meaning it behaves the way '**/*/' should.
Try the following in the git source repo:
shopt -s globstar
diff <(ls -1 */.gitignore | sort) <(git ls-files '*/.gitignore' | sort)
diff <(ls -1 */**/.gitignore | sort) <(git ls-files '*/.gitignore' | sort)of course it works as expected if you say the magic word:
diff <(ls -1 */.gitignore | sort) <(git ls-files ':(glob)*/.gitignore' | sort)
-- Alistair Buxton a.j.buxton@gmail.com