fileutils :: cp方法中保留选项的作用是什么

时间:2016-10-20 02:14:57

标签: ruby

FileUtils doc

  

options参数是选项的哈希值,取自列表:force,:noop,:preserve和:verbose。 :noop表示不做任何更改。另外两个是显而易见的。

但我不明白:preserve选项的效果。 在cp方法中,如果此选项为true,则会调用copy_metadata方法。它会做什么?

1 个答案:

答案 0 :(得分:2)

根据copy_entry的评论,该评论是从cp方法调用的:

https://github.com/ruby/ruby/blob/v2_3_1/lib/fileutils.rb#L452

  

如果+ preserve +为true,则此方法保留所有者,组和   修改时间。无论+保留+。

,都会复制权限

实际上从copy_metadata调用的copy_entry正在调用lstat来获取uidgidatime,{ {1}}来自复制源文件,并使用mtimeFile.chown将其应用于复制目标。

https://github.com/ruby/ruby/blob/v2_3_1/lib/fileutils.rb#L1399

File.utime