仅当dir不存在时如何mkdir?

我正在编写一个shell脚本,以便在AIX上的KornShell(ksh)下运行。 我想使用mkdir命令来创建一个目录。 但目录可能已经存在,在这种情况下,我不想做任何事情。 因此,我想要测试以查看目录不存在,或者抑制mkdir在尝试创建现有目录时抛出的“文件存在”错误。

任何想法如何最好地做到这一点?


尝试mkdir -p

mkdir -p foo

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

mkdir -p foo/bar/baz

将创建目录foofoo/barfoo/bar/baz如果它们不存在)。

如果在父目录不存在时想要出现错误,并且想要创建该目录(如果该目录不存在),则可以先test该目录的存在:

[ -d foo ] || mkdir foo

这应该工作:

$ mkdir -p dir

要么:

if [[ ! -e $dir ]]; then
    mkdir $dir
elif [[ ! -d $dir ]]; then
    echo "$dir already exists but is not a directory" 1>&2
fi

如果该目录不存在,将创建该目录,但会警告您是否尝试创建的目录的名称已被目录以外的其他目录使用。


使用-p标志。

man mkdir
mkdir -p foo
链接地址: http://www.djcxy.com/p/2889.html

上一篇: How to mkdir only if a dir does not already exist?

下一篇: How to use SSH to run a shell script on a remote machine?