7

如何用厨师重命名文件?

厨师文档中,我只发现:

  • 创造
  • create_if_missing
  • 删除
  • 触碰
4

2 回答 2

10

使用 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
于 2012-11-23T11:47:48.893 回答
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
于 2015-07-07T20:44:48.077 回答