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

StackOverflow https://stackoverflow.com/questions/1937743

  •  20-09-2019
  •  | 
  •  

Вопрос

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

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

File.new(Dir.new(".").path).expand
Это было полезно?

Решение

Dir.pwd кажется, это помогает.

http://ruby-doc.org/core/Dir.html#method-c-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"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top