【问题标题】:How to check if the directory is symlink in chef如何检查目录是否是厨师中的符号链接
【发布时间】:2014-05-18 12:10:56
【问题描述】:

如果不是 symlnik,我只想删除目录。

directory "/var/www/html/" do
  action :delete
  only_if ???
end

【问题讨论】:

    标签: shell chef-infra


    【解决方案1】:

    所选答案不适用于 Windows 或 Bash 是默认解释器的系统。您应该使用跨平台的 Ruby 解决方案(而且速度更快,因为没有进程生成):

    directory '/var/www/html' do
      action :delete
      not_if { File.symlink?('/var/www/html') }
    end
    

    【讨论】:

    • 谢谢!这听起来不错。我改变了食谱,效果很好! Cookbook 需要跨平台。我将答案选择更改为您的。
    【解决方案2】:

    怎么样:

    directory "/var/www/html/" do
        action :delete
        not_if "test -L /var/www/html/"
    end
    

    如果$file 是符号链接,test -L $file 返回 0 (true)。

    【讨论】:

    • 谢谢!我用你的解决方案解决了这个问题。但我消除了路径的最后一个斜线。
    • 我会在 not_if 块中使用基于 ruby​​ 的解决方案。见here
    • 谢谢。基于 ruby​​ 的解决方案更好。
    猜你喜欢
    • 2019-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2023-01-18
    • 2011-08-11
    • 2012-06-19
    相关资源
    最近更新 更多