Sim, zsh
e bash
se comportam de maneira diferente a esse respeito.
Em zsh
, quando você diz " ubuntuone-*
", ele procura no diretório de trabalho atual por arquivos que começam com ubuntuone-
- como não encontra nenhum, diz " no matches
" e não é executado o comando.
bash
adota uma abordagem diferente - também procura arquivos que iniciam com ubuntuone-
no diretório de trabalho atual, mas, se não encontrar nenhum, diz a si mesmo: "Talvez o programa que estou invocando saiba como manipule o caractere curinga "e assim passa" ubuntuone-*
"para sudo apt-get
como um argumento literal.
Se você tivesse um arquivo em seu diretório de trabalho atual chamado ubuntuone-ffdjhjer
, então o bash tentaria executar sudo apt-get remove --purge ubuntuone-ffdjhjer
, o que provavelmente falharia.
Em zsh
(e em bash
) você pode usar aspas simples para dizer a ele para não expandir o curinga, mas para transmiti-lo, como em:
sudo apt-get remove --purge 'ubuntuone-*'