如何在Ruby中获得当前工作目录的绝对路径?

我在Windows上运行Ruby,虽然我不知道这是否有什么不同。我所要做的就是获取当前工作目录的绝对路径。这可能从irb吗?显然,在脚本中可以使用File.expand_path(__FILE__)

但是从irb,我尝试了以下,得到了一个“权限被拒绝”错误:

File.new(Dir.new(".").path).expand
255036 次浏览

File.expand_path File.dirname(__FILE__)将返回相对于调用此命令的文件的目录。

但是Dir.pwd返回工作目录(结果与在终端中执行pwd相同)

这将为您提供当前文件的工作目录。

File.dirname(__FILE__)

例子:

current_file:“/用户/ nemrow / SITM / folder1 / folder2 / amazon.rb”

结果:“/用户/ nemrow / SITM / folder1 / folder2”

至于相对于当前执行脚本的路径,因为Ruby 2.0你也可以使用

__dir__

所以这基本上和

File.dirname(__FILE__)

如果你想获取当前rb文件目录的完整路径:

File.expand_path('../', __FILE__)

通过这种方式,您可以获得位于任何目录中的任何文件的绝对路径。

File.join(Dir.pwd,'some-dir','some-file-name')

它会返回

=> "/User/abc/xyz/some-dir/some-file-name"