使用chef重命名文件的最佳方法

时间:2012-11-23 11:41:39

标签: chef chef-recipe

如何用厨师重命名文件?

仅在chef doc中找到了:

  • 创建
  • create_if_missing
  • 删除
  • 触摸

2 个答案:

答案 0 :(得分:9)

使用ruby_block并在内部使用:: File.Rename(src,dst)。 Chef框架没有文件重命名(或者至少在0.10.18之前没有)。

只是一个例子:

ruby_block "Rename file" do
  block do
    ::File.rename(new_resource.src,new_resource.dst)
  end
end

答案 1 :(得分:1)

如果您需要重命名多个文件,请选择其他选项。检查其中一个资源,以了解它是否已经运行。

ruby_block "Rename file" do
  block do
    ::Dir.glob("*/*.src").each {|i| File.rename(i, i.gsub(/(.*).src/,'\\1.dst'))};
  end
  not_if {File.exists?("new_resource.dst")}
end