检查目录是否不存在

SLS:

我已经编写了一个脚本来检查var / log目录,并在其中获取所有目录,并检查这些目录中是否有存档目录。如果存档目录不存在,我想创建它,但是一旦创建,脚本将尝试再次创建它。

vdir=$(sudo sh -c "find /var/log/ -maxdepth 1 -type d ! -name "archive"" )
for i in $vdir ;do
    echo $i
    if [[ ! -d $i/$arc ]];then
        sudo sh -c "mkdir $i/$arc"
        echo "$date:$HN:Creating:$i/$arc:directory" >> logrotation.log
    fi
done

当我执行上述代码时,它给了我这个错误。似乎脚本没有检查条件。

mkdir: cannot create directory ‘/var/log/speech-dispatcher/archive’: File exists
韦斯·哈达克(Wes Hardaker):

问题是您有两个[符号。您只需要一个:

          if [ ! -d $i/$arc ];then

还有一点:某些外壳版本无法处理;右括号旁边的内容。因此,我建议使用这种格式以获得最佳兼容性:

          if [ ! -d $i/$arc ] ; then

编辑:由于上述没有帮助您,更多的想法:

您的脚本(以您的身份运行)也很可能无法实际读取$i目录的内容,因此测试总是会失败(或实际上会成功)。但是,当您通过sudo以root身份创建目录时,该目录已经存在。

[在sudo下运行整个脚本,而不是仅运行其中的某些脚本,效率也会更高。]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

检查目录是否存在,如果不存在则创建

VBA检查目录是否存在,如果存在退出子,否则不存在,创建

检查目标目录是否存在,如果不存在则进行创建,然后再进行

检查批处理脚本中是否存在任何文件,但不存在目录

检查元素是否不存在

检查会话是否不存在php

Laravel 检查 var 是否不存在

Shell脚本检查dir目录是否存在然后更改路径,如果不存在则使用该名称创建dir并检查文件名不存在

PHP 检查文件是否在任何目录中不存在

如何检查Makefile中目录是否不存在?如果[!-d ...]始终返回true

检查path是否为目录路径(它可能不存在)

如何检查目录是否存在,如果在Rust中不存在,则创建一个新目录?

检查文件是否存在,如果不存在则创建它

如何创建检查记录是否在mysql中不存在?

检查div是否不存在于javascript中

检查页面上是否不存在类

检查列表中是否不存在字符串

MySQL在多次插入之前检查是否不存在

Bash检查是否显示文件不存在?

如何检查数组是否为空或不存在?

量角器检查元素是否不存在

如何正常检查原始资源是否不存在?

如何检查ViewBag属性是否为空或不存在

检查数据属性是否不存在值

检查列是否在列表中不存在

检查对象数组中是否不存在值

检查符号链接是否损坏或不存在

Testcafe检查DOM元素是否不存在

Scala检查地图中是否不存在