find . -type f -name '*.php' -print0 | tee list | tr \0 \n
xargs -r0 rm -f < list
Supondo que você queira ver a lista antes de decidir excluí-los. Se não, você pode simplesmente fazer:
find . -name '*.php' -type f -print -delete
(observe que -print0
, -delete
, -r
, -0
não são padrão, mas suportados pela implementação da GNU)
Tenha também em atenção que, embora find -delete
seja relativamente seguro, na primeira solução, alguém pode renomear diretórios para links simbólicos para algumas áreas sensíveis entre a execução do comando find
e xargs
e excluir arquivos que você não pretendia. Executar find
duas vezes, a segunda vez com -delete
evitaria isso.