一路上tempdir()
在树的末尾的目录之前添加了一个额外的正斜杠。是否有任何理由,是否有任何重要的情况?根据来自另一个站点的this answer,目录树中的双斜线无关紧要(但是它们在路径的开头处执行),那么为什么osx上的R
会添加一个额外的?
这可能被认为是一个错误还是有必要的情况?在示例中,两个路径都正确解析:
tempdir()
[1] "/var/folders/ck/1x5j5jvx5mq17clf5r32gg540000gn/T//Rtmpp6VKKK"
normalizePath( tempdir() )
[1] "/private/var/folders/ck/1x5j5jvx5mq17clf5r32gg540000gn/T/Rtmpp6VKKK"
setwd( tempdir() )
write.table("" , file="This is a test.txt")
system( paste0( "cd " , tempdir() , "; ls -a" ) )
.
..
This is a test.txt
system( paste0( "cd " , normalizePath( tempdir() ) , "; ls -a" ) )
.
..
This is a test.txt
顺便说一句,我意识到这与此网站不太相关,但也许有osx
经验更多的人可以阐明为什么normalizePath()
将/var
更改为/private/var
}?这是与别名有关吗?
答案 0 :(得分:2)
这很可能是tempdir
实施中的一个错误。该函数使用环境变量TEMPDIR
中指定的目录作为基本目录,如果TEMPDIR
包含尾部斜杠,tempdir()
在编写结果时似乎没有注意到。如果存在,则更好的实现将首先删除尾部斜杠。
是的,在Mac OS X上,/tmp
是/private/tmp
的符号链接。