find -exec rm para vários arquivos

0

Eu quero pesquisar vários arquivos usando find e excluir todos eles usando -exec . Eu tentei

find ./ -type f -name fileA -o -name fileB -exec rm {} \; 

mas isso parece remover arquivos "fileB" apenas não fileAs.

    
por user2958481 03.12.2016 / 01:08

2 respostas

4

-o também se aplica à ação, portanto, você precisa agrupar as coisas:

find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \; 

BTW, sua implementação find também pode suportar -delete :

find ./ -type f \( -name fileA -o -name fileB \) -delete 
    
por 03.12.2016 / 01:24
1

Outra alternativa:

 WARNING: it is possible that due to funny characters in directory names it is possible that unintended files might be deleted.

 find ./ -type f \( -name fileA -o -name fileB \) -print | xargs rm -f

Ou, se possível, para capturar esses arquivos com personagens engraçados:

 NOTE: On some systems -print0 and -0 options are not available.  But this would be the preferred and safer method)

 find ./ -type f \( -name fileA -o -name fileB \) -print0 | xargs -0 rm -f
    
por 03.12.2016 / 02:16

Tags