有没有理由使用
if [[ ! -d dirname ]]; then mkdir dirname; fi
而不仅仅是
mkdir -p dirname
答案 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
更优雅。