как получить абсолютный путь текущего рабочего каталога от irb - PullRequest
256 голосов
/ 21 декабря 2009

Я использую Ruby в Windows, хотя не знаю, должно ли это что-то изменить. Все, что я хочу сделать, это получить абсолютный путь текущего рабочего каталога. Это возможно от IRB? Как видно из скрипта, можно использовать File.expand_path(__FILE__)

Но из irb я попробовал следующее и получил ошибку «Отказано в доступе»:

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

Ответы [ 6 ]

476 голосов
/ 21 декабря 2009

Dir.pwd кажется, добивается цели.

http://ruby -doc.org / ядро ​​/ Dir.html # способ-с-PWD

178 голосов
/ 26 сентября 2011

File.expand_path File.dirname(__FILE__) вернет каталог относительно файла, из которого вызывается эта команда.

Но Dir.pwd возвращает рабочий каталог (результаты идентичны выполнению pwd в вашем терминале)

54 голосов
/ 19 марта 2015

Что касается пути относительно текущего исполняемого скрипта, начиная с Ruby 2.0 вы также можете использовать

__dir__

Так что это в основном то же самое, что и

File.dirname(__FILE__)
4 голосов
/ 14 июля 2014

Это даст вам рабочий каталог текущего файла.

File.dirname(__FILE__)

Пример:

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

результат: "/ Users / nemrow / SITM / folder1 / folder2"

3 голосов
/ 06 октября 2016

Если вы хотите получить полный путь к каталогу текущего файла rb:

File.expand_path('../', __FILE__)
2 голосов
/ 06 марта 2017

Посредством этого вы можете получить абсолютный путь к любому файлу, расположенному в любом каталоге.

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

Это вернет

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