如何从irb获取当前工作目录的绝对path
我在Windows上运行Ruby,但我不知道这是否应该有所作为。 我想要做的就是获取当前工作目录的绝对path。 这是可能从irb? 显然从脚本可以使用File.expand_path(__FILE__)
但从irb我尝试了以下,并得到了“权限被拒绝”的错误:
File.new(Dir.new(".").path).expand
Dir.pwd
似乎是诀窍。
File.expand_path File.dirname(__FILE__)
将返回相对于从此调用该命令的文件的目录。
但是Dir.pwd
返回工作目录(结果与在terminal中执行pwd
相同)
至于相对于当前执行脚本的path,从Ruby 2.0开始也可以使用
__dir__
所以这个基本上是一样的
File.dirname(__FILE__)
这会给你当前文件的工作目录。
File.dirname(__FILE__)
例:
current_file:“/Users/nemrow/SITM/folder1/folder2/amazon.rb”
结果:“/ Users / nemrow / SITM / folder1 / folder2”
通过这个你可以得到任何目录下的任何文件的绝对path。
File.join(Dir.pwd,'some-dir','some-file-name')
这将返回
=> "/User/abc/xyz/some-dir/some-file-name"
如果你想获得当前rb文件的完整path:
File.expand_path('../', __FILE__)