只有 mkdir,如果它不存在

在我的 bash 脚本中,我这样做:

mkdir product;

当我多次运行脚本时,我得到:

mkdir: product: File exists

在控制台。

所以我希望只运行 mkdir,如果目录不存在。这可能吗?

200513 次浏览

做个测试

[[ -d dir ]] || mkdir dir

或者使用 -p 选项:

mkdir -p dir

mkdir -p

- P-父母 如果存在则没有错误,根据需要创建父目录

使用 mkdir 的 -p选项,但请注意它还有另一个效果。

 -p      Create intermediate directories as required.  If this option is not specified, the full path prefix of each oper-
and must already exist.  On the other hand, with this option specified, no error will be reported if a directory
given as an operand already exists.  Intermediate directories are created with permission bits of rwxrwxrwx
(0777) as modified by the current umask, plus write and search permission for the owner.

尝试使用这个:-

mkdir -p dir;

注意:- 这也会创建任何不存在的中间目录; 例如,

看看 Mkdir-p

或者试试这个:-

if [[ ! -e $dir ]]; then
mkdir $dir
elif [[ ! -d $dir ]]; then
echo "$Message" 1>&2
fi
if [ ! -d directory ]; then
mkdir directory
fi

或者

mkdir -p directory

如果 directory不存在,则 -p确保创建