如果目录不存在则使用test命令创建

如果目录不存在则使用test命令创建

我只是想知道这个脚本代码是否可以正确测试 dir2 是否存在,如果不存在,则创建它。 Dir1 已经存在。

[ ! -d /dir1/dir2  ] && mkdir /dir1/dir2

答案1

dir1/dir2如果存在但不是目录,您的命令可能会失败。如果您想测试是否dir1/dir2存在,请使用-e

[ -e dir1/dir2 ] || mkdir dir1/dir2

如果您确实需要dir1/dir2成为一个目录,并且具有该名称的普通文件是错误的并且应该被替换,您可以测试这种情况。

[ -e dir1/dir2 ] && [ ! -d dir1/dir2 ] && rm dir1/dir2
[ -d dir1/dir2 ] || mkdir dir1/dir2

相关内容