Как получить абсолютный путь текущего рабочего каталога от irb

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

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

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

6 ответов

Решение

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

http://ruby-doc.org/core/Dir.html

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

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

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

__dir__

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

File.dirname(__FILE__)

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

File.dirname(__FILE__)

Пример:

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

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

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

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

Это вернется

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

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

File.expand_path('../', __FILE__)
Другие вопросы по тегам