我正在尝试将文件复制到"/usr/bin"
在 Windows 7 上将 Ruby 1.9.3 与 msys 一起使用。Msys 会很乐意从它的 bash 式 shell 中执行此操作 - 成功$cp testscript.rb /usr/bin
了。
但从 Ruby 内部来看,情况完全不同,并且FileUtils.cp
失败/usr/bin
或C:/usr/bin
两者都失败。问题似乎在于 msys 和 Ruby 如何处理路径,而他们在这一点上并不一致。
$ cd /usr/bin
$ pwd
/usr/bin
$ irb
irb(main):001:0> Dir.pwd
=> "C:/msysgit/bin"
果然,FileUtils.cp("testscript.rb", "C:/msysgit/bin")
有效。这是我的问题:我怎样才能在这些之间进行翻译?我知道我想将我的文件移动到/usr/bin
中,并且可以推断为C:/usr/bin
,但我不知道如何确定它确实是C:/msysgit/bin
,而且我不能只对其进行硬编码,因为它不仅需要在我的设置上工作。
我需要一种方法来(1)说服 Dir 和 FileUtils 和 File 以与 msys shell 相同的方式理解路径,或者(2)知道如何在它们之间进行转换。
有没有其他人看到这个问题?有什么建议么?