Nunca analise a saída de ls
Minha sugestão é evitar analisar a saída de ls [ 1 ] , ainda mais se estiver em conjunto com o delcomando. Isso por muitos motivos, principalmente relacionados a caracteres inesperados e não usuais permitidos no nome do arquivo.
Mesmo quando você espera que os nomes de arquivos pertencentes aos pacotes Linux "se comportem bem" , esse problema pode aparecer se outros arquivos estiverem presentes no mesmo diretório, mas você não sabia ou notou.
É melhor usar find, a expansão da guia (comece a escrever o nome e pressione Tab), a expansão do nome do arquivo [ 2 ] como *MyKey*...
Uma solução rápida
Como você deseja selecionar todos os pacotes (que terminam com .deb) com "google" dentro, você pode criar sua solicitação com o curinga * *google*.debe fazer um simples
rm -i *google*.deb
que selecionará cada nome de arquivo com "google" no meio que terminará no .debpresente no diretório atual. A opção -i(interativa) solicitará a confirmação, um bom hábito ao excluir arquivos com a expansão de parâmetro.
Uma solução próxima à filosofia de sua tentativa
Se seu objetivo é criar sua linha de comando peça após peça, você fez isso lsdepois ls | grep googlee somente depois de verificar sua saída, é possível executá-la em uma subshell $(...)com
rm -i $(ls | grep google)
Uma maneira mais rápida e perigosa [ 3 ] , é usar!!
ls | grep google
rm -i $(!!)
que executará o último comando concluído em seu histórico . Você pode proteger-se do fato de que você não tem controle visual da linha que você está indo para executar se você tiver ativado previamente as opções do shell histverifycom shopt -s histverify.
rm -i *chrome*.deb