Sie können die Ausgabe von find
in xargs
, unter Angabe, dass nur Zeilenumbrüche als Trennzeichen zwischen Dateinamen berücksichtigt werden sollen:
find -name '*.exe' | xargs -d \\n rm
Der tragbarere Weg, dies zu tun, ist die Verwendung des Nullzeichens als Trennzeichen:
find -name '*.exe' -print0 | xargs -0 /bin/rm
Siehe find
die Manpage für ein Beispiel, das dies tut.
Eine andere Option besteht darin, den Befehl zu verwenden, den Sie verwendet haben, aber um das interne Argumenttrennzeichen von bash auf Nur Zeilenumbrüche festzulegen:
IFS=$'\n'; rm $(find . -name "*.exe");
Hier wird das $'...'
Zitatkonstrukt verwendet, um ein Zeilenvorschubzeichen zu erstellen. Dieser Ansatz ist bei einer langen Liste von Dateinamen weniger belastbar als bei Verwendung von xargs
.