find -exec rm 多个文件

find -exec rm 多个文件

我想使用 搜索多个文件find并使用 删除所有文件-exec。我试过

find ./ -type f -name fileA -o -name fileB -exec rm {} \; 

但这似乎只删除文件“fileB”而不是 fileAs。

答案1

-o也适用于操作,因此您需要对事物进行分组:

find ./ -type f \( -name fileA -o -name fileB \) -exec rm {} \; 

顺便说一句,您的find实现也可能支持-delete

find ./ -type f \( -name fileA -o -name fileB \) -delete 

答案2

另一种选择:

 WARNING: it is possible that due to funny characters in directory names it is possible that unintended files might be deleted.

 find ./ -type f \( -name fileA -o -name fileB \) -print | xargs rm -f

或者如果可能的话,捕获那些带有有趣字符的文件:

 NOTE: On some systems -print0 and -0 options are not available.  But this would be the preferred and safer method)

 find ./ -type f \( -name fileA -o -name fileB \) -print0 | xargs -0 rm -f

相关内容