如何递归删除包含空格的文件?

DrB*_*eco 6 linux bash recursion

我在 Ubuntu 中的 bash 下使用此命令时遇到了一些问题:

rm $(find . -name "*.exe")
Run Code Online (Sandbox Code Playgroud)

我的目标是递归删除所有以.exe. 但是有些文件有空格,这会破坏命令。

关于如何解决这个问题的任何建议?

Jon*_*ler 17

find . -name "*.exe" -exec rm -f '{}' +
Run Code Online (Sandbox Code Playgroud)

find对命令和参数进行了格式化,并且小心地避免了对名称的修改(通过将每个名称作为单独的参数传递给rm)。'+' 的意思是“在一次执行中合理地尽可能多地做rm”。

  • `find(1)` 具有 `-delete` 操作(可能只是 GNU find 而已),它将保存所有子进程和繁琐的命令行选项。`找到。-name '*.exe' -delete` (3认同)