我正在尝试实现一个穷人的备份/镜像脚本,并且遇到了一些麻烦。
我在Windows-XP上,使用Ruby的FileUtils模块递归复制文件。
只要我没有将:preserve标志设置为true,一切正常。
使用:
FileUtils.cp_r('Source_dir', 'Dest_dir', :verbose => true)
不起作用:
FileUtils.cp_r('Source_dir', 'Dest_dir', :verbose => true, :preserve => true)
我拥有Dest_dir的完全权限,因为它位于我本地计算机的桌面上,我刚刚创建了它。我可以复制和删除文件和文件夹,但显然正在更改或维护文件属性:preserve不起作用。我没有机会在Mac或Linux机器上尝试这个,但是通过在线阅读:保存标志是在Windows环境中遇到的正常绊脚石。
在类似的提问行中,FileUtils.cp_r遇到目标目录中的现有文件时的默认行为是什么?只需用Source中的任何内容覆盖并替换Destination中的所有内容,或者我可以跳过有冲突的文件并稍后将其记录下来以便解决吗? (如果这应该是一个单独的问题,请告诉我,我会把它作为一个。)
谢谢,
斯潘塞
答案 0 :(得分:1)
我最终不得不更改目标目录的权限以允许修改,因为它看起来会写入文件,然后修改属性。