Получить родительский каталог текущего каталога в Ruby


Я понимаю, что могу получить текущий каталог по

$CurrentDir = Dir.pwd

Как насчет родительского каталога текущего каталога?

3 51

3 ответа:

File.expand_path("..", Dir.pwd)

пожалуй, самое простое решение:

puts File.expand_path('../.') 

Я думаю, что еще более простым решением является использование File.dirname:

2.3.0 :005 > Dir.pwd
 => "/Users/kbennett/temp"
2.3.0 :006 > File.dirname(Dir.pwd)
 => "/Users/kbennett"
2.3.0 :007 > File.basename(Dir.pwd)
 => "temp"

File.basename возвращает компонент пути, что File.dirname нет.

Это, конечно, работает только в том случае, если filespec является абсолютным, а не относительным. Чтобы быть уверенным, чтобы сделать его абсолютным можно было бы сделать это:

2.3.0 :008 > File.expand_path('.')
 => "/Users/kbennett/temp"
2.3.0 :009 > File.dirname(File.expand_path('.'))
 => "/Users/kbennett"