【问题标题】:Shell script to test whether a directory exists and if not create it?Shell脚本测试目录是否存在,如果不存在则创建它?
【发布时间】:2011-02-25 15:00:51
【问题描述】:

我正在尝试创建一个脚本来检测目录是否存在,如果不存在,则创建它。

我该怎么做?

我做了一些挖掘,发现了一个线索:

test -d directory

...将根据目录是否存在返回truefalse

但是我如何将它与mkdir 绑定在一起?

【问题讨论】:

  • 为什么要麻烦测试?只需执行“mkdir foo 2> /dev/null”。如果目录存在,mkdir 将失败并且不会造成任何伤害。

标签: shell directory exists


【解决方案1】:

mkdir -p $directory 应该做你想做的事。 -p 选项将创建任何必要的父目录。如果$directory 已作为目录存在,则该命令不执行任何操作并成功。如果$directory 是一个常规文件,它将保持不变,并且该命令将失败并显示相应的错误消息。

如果没有mkdir-p 选项,如果$directory 包含“/”并且该路径的某些组件不存在,则test ... || mkdir ... 策略可能会失败。 test 无论如何都是多余的,因为 mkdir 在内部进行相同的测试。

【讨论】:

    【解决方案2】:
    test ... || mkdir ...
    

    【讨论】:

      猜你喜欢
      • 2014-05-19
      • 1970-01-01
      • 2011-05-12
      • 2015-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多