答案 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