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

我怎样才能做到最好?


当前回答

directory_name = "foo"

if [ -d $directory_name ]
then
    echo "Directory already exists"
else
    mkdir $directory_name
fi

其他回答

您可以使用if语句检查目录是否存在。如果没有退出,则创建目录。

dir=/home/dir_name如果[!-d$dir]然后mkdir$目录其他的echo“目录存在”传真您可以使用mkdir和-p选项创建目录。它将检查目录是否不可用。mkdir-p$dirmkdir-p还允许创建目录的树结构。如果要使用相同的命令创建父目录和子目录,可以选择mkdir-pmkdir-p/home/parent_dir/home/paparent_dir/child1/home/parent_dir/child2

mkdir在Windows 8+系统上不再支持-p开关。

您可以使用此选项:

IF NOT EXIST dir_name MKDIR dir_name

即使目录存在,mkdir foo也能工作。要使其仅在名为“foo”的目录不存在时工作,请尝试使用-p标志。

例子:

mkdir -p foo

这将仅在名为“foo”的目录不存在时创建该目录。:)

如果不想显示任何错误消息:

[ -d newdir ] || mkdir newdir

如果要显示自己的错误消息:

[ -d newdir ] && echo "Directory Exists" || mkdir newdir

简单、无声、致命:

mkdir -p /my/new/dir >/dev/null 2>&1