1

在 R 2.13 file.copy 中引入了一个新的 copy.mode 参数,该参数会影响副本输出的权限。因此,与 n < 13 的 R 2.n 一起工作的程序可能不再工作。我在 Solaris 上发现了这一点。

如果dl.txt是444权限,用户的umask是002,

file.copy("dl.txt", "k.txt") 

用于创建具有 664 权限的 k.txt。现在它有 444。可以通过将 copy.mode=FALSE 添加到每个程序中的每个复制语句来覆盖此行为,以防万一它可能很重要。但是如果你这样做,并且使用的是旧版本的 R,你会得到一个致命的运行时错误。

是否有某种方法可以全局更改较新版本的 R 中的默认行为?或者其他保持向后兼容性的方法?

4

1 回答 1

0

在某些全局区域覆盖它,例如.Rprofile

if( getRversion() > 2.13 ) {
  file.copy <- function(...) { base::file.copy(..., copy.mode=FALSE) }
}
于 2013-03-19T19:46:27.393 回答