仅当dir不存在时如何mkdir?
我正在编写一个shell脚本,以便在AIX上的KornShell(ksh)下运行。 我想使用mkdir
命令来创建一个目录。 但目录可能已经存在,在这种情况下,我不想做任何事情。 因此,我想要测试以查看目录不存在,或者抑制mkdir
在尝试创建现有目录时抛出的“文件存在”错误。
任何想法如何最好地做到这一点?
尝试mkdir -p
:
mkdir -p foo
请注意,这也会创建任何不存在的中间目录; 例如,
mkdir -p foo/bar/baz
将创建目录foo
, foo/bar
和foo/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?