我正在编写一个在AIX上的KornShell(ksh)下运行的shell脚本。我想使用mkdir命令创建一个目录。但是目录可能已经存在,在这种情况下我不想做任何事情。因此,我想要么测试目录是否不存在,要么抑制mkdir在尝试创建现有目录时抛出的“File exists”错误。
我怎样才能做到最好?
我正在编写一个在AIX上的KornShell(ksh)下运行的shell脚本。我想使用mkdir命令创建一个目录。但是目录可能已经存在,在这种情况下我不想做任何事情。因此,我想要么测试目录是否不存在,要么抑制mkdir在尝试创建现有目录时抛出的“File exists”错误。
我怎样才能做到最好?
当前回答
对“经典”解决方案的改进(Brian Campbell)-处理指向目录的符号链接的情况。
[ -d foo/. ] || mkdir foo
其他回答
如果不想显示任何错误消息:
[ -d newdir ] || mkdir newdir
如果要显示自己的错误消息:
[ -d newdir ] && echo "Directory Exists" || mkdir newdir
使用-p标志。
man mkdir
mkdir -p foo
简单、无声、致命:
mkdir -p /my/new/dir >/dev/null 2>&1
mkdir -p sam
mkdir=生成目录-p=--父级(如果存在,则无错误,根据需要创建父目录)
用一个命令定义复杂的目录树
mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}