Você pode canalizar a saída de find
para xargs
, especificando que apenas novas linhas devem ser consideradas como delimitadores entre nomes de arquivos:
find -name '*.exe' | xargs -d \n rm
A maneira mais portátil de fazer isso é usar o caractere nulo como delimitador:
find -name '*.exe' -print0 | xargs -0 /bin/rm
Veja a manpage de find
para um exemplo que faz isso.
Outra opção é usar o comando que você usou, mas definir o delimitador de argumento interno do bash como somente newlines:
IFS=$'\n'; rm $(find . -name "*.exe");
Aqui, a construção $'...'
quoting é usada para criar um caractere de nova linha. Essa abordagem será menos resiliente no caso de uma longa lista de nomes de arquivos do que usando xargs
.