O comando funciona bem no Linux, mas no OS X Mountain Lion quando estou fazendo:
rm !(myfile)
bash reclama:
bash: !: event not found
Existe alguma maneira de fazer o mesmo no OS X?
Responder1
Isso ocorre porque você não definiu a extglob
opção, o que dá um significado especial a !
.
No seu Bash, escreva:
shopt -s extglob
Então, o comando deve ser executado conforme o esperado.
Por padrão,!
expandeao ID do processo do comando em segundo plano (assíncrono) executado mais recentemente. Com o extglob
conjunto, !
pode ser usado paracorrespondência de padrões, mas apenas em conjunto com parênteses após ele ()
.
É claro que você pode adicionar esta linha ao seu ~/.bash_profile
para configurá-la sempre que abrir o Terminal.app. O OS X, por padrão, executa um shell de login, portanto, essas opções devem ser definidas ~/.bash_profile
e não ~/.bashrc
como você provavelmente está acostumado nos emuladores de terminal Linux.