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

如何用单条命令结合ls检查目录并创建目录?

解决方法

你用ls bar && mkdir bar行不通的原因是:&&仅当前面的命令执行成功(返回值为0)时,才会运行后面的命令。当目录bar不存在时,ls bar会执行失败(返回非0值),所以后续的mkdir不会被触发。

下面是几种可靠的实现方式:

1. 用mkdir的-p参数(最简便)

mkdir自带的-p参数可以直接处理“不存在则创建”的需求,而且如果目录已经存在,也不会抛出错误:

mkdir -p bar

2. 用条件判断语句(更直观)

通过if判断目录是否不存在,再执行创建命令:

if [ ! -d bar ]; then
    mkdir bar
fi

其中:

  • -d 用于检查目标是否是一个存在的目录
  • ! 表示取反,即“如果目录不存在”

3. 用||运算符(简洁写法)

||的作用是当前面的命令执行失败时,运行后面的命令。这里用目录检查命令替代ls,避免权限等额外问题:

[ -d bar ] || mkdir bar

这个命令的逻辑是:如果bar目录不存在,[ -d bar ]执行失败,就会触发后面的mkdir bar。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 19:04:51