Post History
The ** pattern is an extension to, not a part of, the POSIX glob syntax. While it has emerged as an informal standard, AFAIK there is no single standard to reference to describe what it does. This...
Answer
#1: Initial revision
The ** pattern is an extension to, not a part of, the POSIX glob syntax. While it has emerged as an informal standard, AFAIK there is no single standard to reference to describe what it does. This means you'll need to consult the documentation for each application that uses it. * For .gitignore files: https://git-scm.com/docs/gitignore#_pattern_format * For `ls **/*`, this is actually your shell doing glob expansion. * Bash treats this identically to `ls */*` unless the `globstar` option is set, [documented under `shopt`](https://www.gnu.org/software/bash/manual/bash.html#The-Shopt-Builtin) * Zsh: https://zsh.sourceforge.io/Doc/Release/Expansion.html#Recursive-Globbing * Other shells: do your own research * For Python's glob library, you've already linked to the relevant documentation.