mkdir -p vs if [[! -d dirname]]

时间:2011-09-05 12:42:54

标签: ksh

有没有理由使用

if [[ ! -d dirname ]]; then mkdir dirname; fi

而不仅仅是

mkdir -p dirname

3 个答案:

答案 0 :(得分:2)

第一种语法取决于您使用的shell,而不是第二种语法。

如果dirname不存在而不是目录,那么两者都失败了,没有,没有区别。

答案 1 :(得分:1)

-d FILE        True if file is a directory.

-p             no error if existing, make parent directories as needed.

如果dirname不包含任何父项,那么这两个命令的行为相同。但是,如果dirname包含父级,则-d将不会创建这些父级。 [[依赖于shell。

答案 2 :(得分:0)

这两个ksh命令在功能上是相同的,因为它们都将创建一个名为dirname的目录。

mkdir -p dirname更优雅。