directory_name = "foo" if [ -d $directory_name ] then echo "Directory already exists" else mkdir $directory_name fi
在Windows 8+系统上,mkdir不再支持-p开关。
你可以用这个:
IF NOT EXIST dir_name MKDIR dir_name
您可以使用if循环来检查目录是否存在,如果它不退出则创建目录。
1)dir = / home / dir_name
if [ ! -d $dir ] then mkdir $dir else echo "Directory exists" fi
2)您可以使用mkdir和-p选项创建目录。它将检查目录是否不可用。
mkdir -p $dir
mkdir -p还允许创建目录的树结构。如果要使用相同的命令创建父目录和子目录,可以选择mkdir -p
mkdir -p /home/parent_dir /home/parent_dir/child1 /home/parent_dir/child2
mkdir -p sam
参考手册页 man mkdir 选项 - p
man mkdir
p
-p, --parents no error if existing, make parent directories as needed
这将创建给定路径中的所有目录,如果存在则不会引发错误,否则它会在给定路径中从左到右创建所有目录。尝试以下命令。目录 newdir 和 anotherdir 发出此命令之前不存在
newdir
anotherdir
的 正确使用 强>
mkdir -p /tmp/newdir/anotherdir
执行命令后,您可以看到 newdir 和 anotherdir 在/ tmp下创建。您可以多次发出此命令,命令始终具有 exit(0) 。由于这个原因,大多数人在使用这些实际路径之前在shell脚本中使用此命令。
exit(0)
mkdir foo 即使目录存在也能正常工作。 要使它仅在名为“foo”的目录不存在时起作用,请尝试使用 -p 旗。
mkdir foo
-p
示例: -
mkdir -p foo
仅当它不存在时,才会创建名为“foo”的目录。 :)
使用-p标志。
man mkdir mkdir -p foo
使用一个命令定义复杂的目录树
mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
这是一个简单的函数(bash shell),它允许您创建一个目录(如果它不存在)。
#---------------------------------- # Create a directory if it doesn't exist #------------------------------------ createDirectory() { if [ ! -d $1 ] then mkdir -p $1 fi }
您可以将上述功能称为:
createDirectory / tmp / fooDir / BarDir
如果它们不存在,上面创建fooDir和BarDir。请注意mkdir命令中的“-p”选项,它以递归方式创建目录。希望这可以帮助。