Isso funciona como esperado nessas versões do Bash, conforme fornecido com as distribuições listadas:
- 4.1.2 (1) - CentOS 6.5
- 4.1.5 (1) - Debian 6.0.10
- 4.1.10 (4) - Cygwin 1.7.31
- 4.2.46 (1) - CentOS 7.1
- 4.3.11 (1) - Ubuntu 14.04.1
- 4.3.30 (1) - Debian 8.1
Na verdade, as versões listadas acima são tudo o que testei. Em outras palavras, eu não encontrei uma versão 4 do Bash onde ele não funciona. A opção globstar
foi adicionada no Bash 4.0, veja MUDANÇAS . Em versões mais antigas, o comando shopt -s globstar
deve retornar um erro.
Testes
1. dir/**/*.ext
corresponde a dir/file.ext
:
~/tests$ ls -1 dir/**/*.ext
dir/file.ext
dir/subdir1/file.ext
dir/subdir2/file.ext
2. **/*.ext
corresponde a file.ext
:
~/tests$ cd dir
~/tests/dir$ ls -1 **/*.ext
file.ext
subdir1/file.ext
subdir2/file.ext
Preparando o ambiente para reproduzir os testes acima:
mkdir -p dir/subdir{1,2}
touch dir/{,subdir{1,2}/}file.ext
shopt -s globstar