Em bash
, se a opção extendedglob
estiver definida (por padrão), você pode negar um padrão glob colocando-o entre parênteses e prefixando um estrondo ( !
). Por exemplo, !(*.gz)
corresponde a todos os itens cujos nomes não terminam com .gz
. Veja a subseção Pathname Expansion
na seção EXPANSION
na página de manual bash
para mais informações.
Em zsh
, se a opção extglob
estiver definida (é não , por padrão), você pode negar um padrão glob inserindo um sinal de intercalação ( ^
). Por exemplo, ^*.gz
corresponde a todos os itens cujos nomes não terminam com .gz
. Veja a seção FILENAME GENERATION
na página de manual zshexpn
para mais informações.
Observe que, em geral, se você quiser usar ls
com um padrão glob, deverá especificar -d
. Isso ocorre porque o shell expande o padrão glob em uma lista de nomes correspondentes, passando cada um deles para ls
como um argumento separado. Se você não usar -d
, ls
listará os conteúdos de quaisquer diretórios cujos nomes são fornecidos.