как получить абсолютный путь к текущему рабочему каталогу из irb
-
20-09-2019 - |
Вопрос
Я использую Ruby в Windows, хотя и не знаю, должно ли это что-то изменить.Все, что я хочу сделать, это получить абсолютный путь к текущему рабочему каталогу.Возможно ли это из irb?По-видимому, из скрипта это возможно с помощью File.expand_path(__FILE__)
Но из irb я попробовал следующее и получил сообщение об ошибке "Отказано в разрешении":
File.new(Dir.new(".").path).expand
Решение
Dir.pwd
кажется, это помогает.
Другие советы
File.expand_path File.dirname(__FILE__)
вернет каталог, относящийся к файлу, из которого вызвана эта команда.
Но Dir.pwd
возвращает рабочий каталог (результаты идентичны выполнению pwd
в вашем терминале)
Что касается пути относительно текущего исполняемого скрипта, поскольку Ruby 2.0 вы также можете использовать
__dir__
Так что это в основном то же самое , что
File.dirname(__FILE__)
Это даст вам рабочий каталог текущего файла.
File.dirname(__FILE__)
Пример:
current_file текущий файл:"/Пользователи/nemrow/SITM/папка 1/папка 2/amazon.rb"
Результат:"/Пользователи/nemrow/SITM/папка 1/ папка 2"
Если вы хотите получить полный путь к каталогу текущего файла rb:
File.expand_path('../', __FILE__)
С помощью этого вы можете получить абсолютный путь к любому файлу, расположенному в любом каталоге.
File.join(Dir.pwd,'some-dir','some-file-name')
Это вернет
=> "/User/abc/xyz/some-dir/some-file-name"