如何复制单个文件
第一种方式
我使用file语句来复制文件(编译时检查)
file "/etc/init.d/someService" do
  owner 'root'
  group 'root'
  mode 0755
  content ::File.open("/home/someService").read
  action :create
end
这里 :
- "/etc/init.d/someService"- 目标文件,
- "/home/someService"- 源文件
你也可以::File.open("/home/someService").read用lazy块包装
...
lazy { ::File.open("/home/someService").read }
...
第二种方式
用户remote_file声明(运行时检查)
remote_file "Copy service file" do 
  path "/etc/init.d/someService" 
  source "file:///home/someService"
  owner 'root'
  group 'root'
  mode 0755
end
第三种方式
您也可以使用外壳/批处理
对于每个目录
Dir[ "/some/directory/resources/**/*" ].each do |curr_path|
  file "/some/target/dir/#{Pathname.new(curr_path).basename}" do
    owner 'root'
    group 'root'
    mode 0755
    content lazy { IO.read(curr_path, mode: 'rb').read }
    action :create
  end if File.file?(curr_path)
  directory "/some/target/dir/#{File.dirname(curr_path)}" do
    path curr_path
    owner 'root'
    group 'root'
    mode 0755
    action :create
  end if File.directory?(curr_path)
end
这只是想法,因为此示例中的子路径未正确处理。