Как получить абсолютный путь текущего рабочего каталога от irb
Я использую Ruby на Windows, хотя я не знаю, должно ли это иметь значение. Все, что я хочу сделать, это получить абсолютный путь текущего рабочего каталога. Это возможно от IRB? Как видно из скрипта можно использовать File.expand_path(__FILE__)
Но из irb я попробовал следующее и получил ошибку "Отказано в доступе":
File.new(Dir.new(".").path).expand
6 ответов
Dir.pwd
кажется, делает свое дело.
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__)