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

求助:使用bash -c实现目录检查删除后必创建功能遇问题

解决方案:Bash单行命令实现目录删除后重建(bash -c执行)

你的原命令问题出在&&的逻辑上:如果rm -r tmp/mydir1因为目录不存在而执行失败,后续的mkdir就不会运行。&&仅当前面的命令执行成功(退出码为0)时才会触发下一个命令。

下面是两种可行的解决方案:

方案1:使用rm -rf忽略不存在的目录

rm的-f参数会强制删除目标,同时忽略不存在的路径,不会抛出错误。这样不管原目录是否存在,rm都会“成功”退出,确保后续的mkdir能正常执行:

bash -c "rm -rf tmp/mydir1 && mkdir -p tmp/mydir1/mydir2"

方案2:用分号;强制执行后续命令

分号;不关心前一个命令的执行结果,会无条件执行后续命令。同时可以把rm的错误输出重定向到/dev/null,避免目录不存在时的报错信息干扰:

bash -c "rm -r tmp/mydir1 2>/dev/null; mkdir -p tmp/mydir1/mydir2"

两种方案都能满足需求:无论原目录是否存在,最终都会创建tmp/mydir1/mydir2目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:39:34