在我的bash脚本中,我这样做:
mkdir product;
当我多次运行脚本时,我得到了:
mkdir: product: File exists
在控制台中。
所以我期待只有dir不存在才能运行mkdir。这可能吗?
答案 0 :(得分:166)
做一个测试
[[ -d dir ]] || mkdir dir
或者使用-p选项:
mkdir -p dir
答案 1 :(得分:66)
if [ ! -d directory ]; then
mkdir directory
fi
或
mkdir -p directory
如果-p
不存在, directory
可确保创建
答案 2 :(得分:8)
使用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.
答案 3 :(得分:3)
mkdir -p
-p, - 父母 如果存在则没有错误,根据需要创建父目录
答案 4 :(得分:2)
尝试使用: -
mkdir -p dir;
注意: - 这也会创建不存在的任何中间目录;例如,
查看mkdir -p
或试试这个: -
if [[ ! -e $dir ]]; then
mkdir $dir
elif [[ ! -d $dir ]]; then
echo "$Message" 1>&2
fi