我正在尝试在 fileutils 中使用 Ruby 的 cp_r 方法递归复制目录。但是,它在(愚蠢但不受我控制)的情况下崩溃,在我复制的目录中有一个文件和指向该文件的符号链接。我收到以下错误:
/usr/lib/ruby/1.8/fileutils.rb:1223:in `symlink': File exists - real_file_name or symbolic_link_filename (Errno::EEXIST)
现在,我可能错了,但符号链接的 :force 选项似乎应该处理一些事情;但是, cp_r 不能采用 :force 选项,而且我看不出有办法让它将该选项传递给其对符号链接的内部调用。此外,捕获 EEXISTS 错误似乎不是解决方案,因为 cp_r 的运行仍会被中断。
有没有一种干净的方法来解决这个问题?