Por que 'ls -d * [! e] *' exibe todos os arquivos em vez de omitir todos os arquivos que contêm um e?

0

ls -d *e* imprime todos os arquivos contendo um "e" em algum lugar. Mas o oposto, ls -d *[!e]* parece não funcionar. Por que exatamente isso?

é porque ls usa * como seu próprio argumento e expande todos os arquivos?

Eu entendo que posso fazer: ls -d !(*e*) (no Bash com extglob set ou no ksh).

    
por user110210121 03.03.2017 / 20:46

1 resposta

3

O que esse glob está realmente fazendo é combinar qualquer número de caracteres, um único caractere diferente de um e, em seguida, qualquer número de caracteres. Ele corresponderá a qualquer arquivo com um nome que não seja composto inteiramente de e.

    
por 03.03.2017 / 20:50