You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻找无需末尾分号的find命令替代方案:递归先列后删指定文件

替代 find -name "*broken*" -exec rm '{}' ';' 的可行方案

方案1:先列文件再用xargs删除(避开分号)

先执行查找命令确认目标文件:

find -name "*broken*"

确认无误后,用xargs替代-exec完成删除,无需末尾分号:

find -name "*broken*" | xargs rm

如果文件名包含空格、换行或特殊字符,用更安全的版本:

find -name "*broken*" -print0 | xargs -0 rm

方案2:用find的-delete选项(一步实现先显示再删除)

如果你的find是GNU版本(绝大多数Linux发行版默认是),可以直接用-delete选项,同时加上-print先输出文件路径,全程不用-exec和分号:

find -name "*broken*" -print -delete

这个命令会先打印所有匹配的文件,再自动删除它们,完全满足你的需求。

方案3:Shell循环遍历(灵活可控)

如果需要更精细的控制(比如逐个确认),可以用循环:

# 先列出目标文件
find -name "*broken*"
# 执行删除(文件名无特殊字符时可用)
for file in $(find -name "*broken*"); do rm "$file"; done

若文件名含空格等特殊字符,改用安全的循环写法:

# 先列出
find -name "*broken*"
# 安全删除
find -name "*broken*" -print0 | while IFS= read -r -d '' file; do rm "$file"; done

内容的提问来源于stack exchange,提问作者Sizzurpp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 17:55:22