how to get the current working directory's abs

2019-03-07 12:42发布

I'm running Ruby on Windows though I don't know if that should make a difference. All I want to do is get the current working directory's absolute path. Is this possible from irb? Apparently from a script it's possible using File.expand_path(__FILE__)

But from irb I tried the following and got a "Permission denied" error:

File.new(Dir.new(".").path).expand

6条回答
Summer. ? 凉城
2楼-- · 2019-03-07 12:59

This will give you the working directory of the current file.

File.dirname(__FILE__)

Example:

current_file: "/Users/nemrow/SITM/folder1/folder2/amazon.rb"

result: "/Users/nemrow/SITM/folder1/folder2"

查看更多
叛逆
3楼-- · 2019-03-07 12:59

Through this you can get absolute path of any file located in any directory.

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

This will return

=> "/User/abc/xyz/some-dir/some-file-name"
查看更多
萌系小妹纸
4楼-- · 2019-03-07 13:00

As for the path relative to the current executing script, since Ruby 2.0 you can also use

__dir__

So this is basically the same as

File.dirname(__FILE__)
查看更多
贼婆χ
5楼-- · 2019-03-07 13:18

File.expand_path File.dirname(__FILE__) will return the directory relative to the file this command is called from.

But Dir.pwd returns the working directory (results identical to executing pwd in your terminal)

查看更多
我只想做你的唯一
6楼-- · 2019-03-07 13:20
相关推荐>>
7楼-- · 2019-03-07 13:26

If you want to get the full path of the directory of the current rb file:

File.expand_path('../', __FILE__)
查看更多
登录 后发表回答