I quite like mercurial .hgignore-style pattern globbing.
Globs are rooted at the current directory; a glob such as *.c will only match files in the current directory ending with .c.
The supported glob syntax extensions are ** to match any string across path separators and {a,b} to mean "a or b".
Is there a Linux shell that supports this?
.hgignoreignore patterns — they're not rooted for example. The section is about the general pattern supported by all commands. You use them likehg add "set:**.c", which works even when your shell doesn't (e.g., on Windows).