Excluir todos os arquivos que correspondem ao padrão no diretório

1

Como posso excluir todos os arquivos que contêm -20 no nome do arquivo no diretório atual?

Eu tenho

ls | grep "-20" | rm -rf

Mas isso não funciona. Idéias?

Obrigado.

    
por Justin 24.06.2012 / 08:47

2 respostas

3
rm -- *-20*

O - pára -20 sendo tratado como um argumento para rm se o arquivo -20 existir.

    
por 24.06.2012 / 08:55
1

Seu problema com

ls | grep "-20" | rm -rf  # DOESN'T WORK

é que você está enviando nomes de arquivos para rm , mas rm não lê a entrada padrão. Você precisa usar xargs para chamar rm repetidamente como:

ls | grep '-20' | xargs rm -rf

Mas, na verdade, você não quer usar ls | grep para encontrar nomes de arquivos. Use o comando find .

find . -name '*-20' | xargs rm -rf

Mas é claro que, como o outro pôster disse, a melhor solução é rm -- *-20* .

    
por 02.11.2012 / 18:24

Tags