我想使用 搜索多个文件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