Вы можете направить вывод из find
в xargs
, указав, что только разделители должны рассматриваться как разделители между именами файлов:
find -name '*.exe' | xargs -d \\n rm
Более переносимый способ сделать это - использовать нулевой символ в качестве разделителя:
find -name '*.exe' -print0 | xargs -0 /bin/rm
Смотрите man-страницу find
для примера, который делает это.
Другой вариант - использовать команду, которую вы использовали, но установить внутренний разделитель аргументов bash только на новые строки:
IFS=$'\n'; rm $(find . -name "*.exe");
Здесь конструкция цитирования $'...'
используется для создания символа новой строки. Этот подход будет менее устойчивым в случае длинного списка имен файлов, чем при использовании xargs
.