使用“查找”进行递归搜索和删除

nig*_*ler 2 find rm whitespace

我想搜索其中包含名称 libre 的文件,然后删除它们。我在这里完成了一半并且找不到删除文件的可靠方法,尤其是当文件名中有空格时。

find -iname *libre*
Run Code Online (Sandbox Code Playgroud)

这将搜索文件,但假设一个文件是“Libre Office Word”,现在它有空格,你能指导如何删除这些文件吗?

jor*_*anm 5

您可以使用-delete,如果你找到的版本支持的选项,或者您可以使用rm-exec选项。

find -iname '*libre*' -delete       # GNU find
find -iname '*libre*' -exec rm {} + # POSIX
Run Code Online (Sandbox Code Playgroud)

请注意,您应该引用该模式。这可以防止 shell 在传递给 find 命令之前扩展它。