Então, vou dar a resposta para a pergunta. Você precisa ativar extglob
para fazer o bash reconhecer padrões estendidos além da sintaxe de expansão do histórico.
shopt -s extglob
rm !(*keyword)
shopt -s extglob
também permite a correspondência de padrões estendida em case
e [[ ]]
, mas ele já é o comportamento padrão em [[ ]]
iniciando o Bash 4.1 e padrões estendidos já são reconhecidos com ou sem a opção ativada.
Para referência, consulte a Correspondência de padrões do manual do Bash.