options参数是选项的哈希值,取自列表:force,:noop,:preserve和:verbose。 :noop表示不做任何更改。另外两个是显而易见的。
但我不明白:preserve
选项的效果。
在cp
方法中,如果此选项为true,则会调用copy_metadata
方法。它会做什么?
答案 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
来获取uid
,gid
,atime
,{ {1}}来自复制源文件,并使用mtime
和File.chown
将其应用于复制目标。
https://github.com/ruby/ruby/blob/v2_3_1/lib/fileutils.rb#L1399
File.utime