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

如何避免rm -R删除不存在目录时返回exit 1,使脚本exit 0?

删除目录时忽略不存在的目标并返回exit 0

不用if-then语句的话,有两种简单方法可以实现需求:

方法1:使用rm的-f参数

给rm命令加上-f(强制删除)参数,配合递归删除的-R参数,命令如下:

rm -Rf dir1 dir2 dir3

-f参数会让rm自动忽略不存在的目录,不输出"No such file or directory"错误,执行后无论目标是否存在,都会返回exit 0。这个方法适用于大部分主流shell环境(包括GNU/Linux和BSD/macOS)。

方法2:用||操作符强制返回0

如果需要保留rm对其他错误的输出(比如权限不足的提示),但只想让整个命令最终返回0,可以用shell的逻辑或操作符:

rm -R dir1 dir2 dir3 || true

||表示只有前面的rm命令执行失败时,才会运行后面的true命令,而true始终返回exit 0,因此整条命令的退出状态一定是0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:12:08