使用`find`删除

Ben*_*ies 7 linux find

所以,给定三个选项......

  1. find .... -delete
  2. find .... | xargs rm ...
  3. find .... -exec rm ...;

..或其变体,哪个选项更可取?
我猜没有一成不变的答案,具体情况将决定最佳选择(请说出它们的名字!)

干杯。

Ign*_*ams 15

选项 1 将避免产生外部进程,这在压力条件下很有用。

选项 2 将生成单个xargs进程,该进程仅生成rm必要的进程数。此选项通常与-print0-0一起使用,以便处理带有空格和/或换行符的文件名。

选项 3 将为rm每个文件生成一个进程。

GNU find(或任何符合 POSIX 的 find 版本)允许使用第四个选项,find .... -exec rm -r {} +,它将rm使用尽可能多的文件名运行,以便仅生成有限数量的文件名。


Chr*_*s S 5

我更喜欢find ... > file.txt广泛使用审查文件,然后使用,find ... -delete所以我知道将删除完全相同的结果(传递参数主要是防弹的,主要是)。