Как мне получить цель символической ссылки? - PullRequest
48 голосов
/ 06 августа 2009

У меня есть строка, содержащая путь файловой системы к существующей символической ссылке. Я хочу получить путь, на который указывает эта ссылка.

По сути, я хочу того же, что и через эту часть хакерства:

s = "path/to/existing/symlink"
`ls -ld #{s}`.scan(/-> (.+)/).flatten.last

но я хочу сделать это без выстрелов.

Ответы [ 3 ]

65 голосов
/ 06 августа 2009

Я думаю readlink - это то, что вы ищете:

File.readlink("path/to/symlink")
46 голосов
/ 06 августа 2009
require 'pathname'
Pathname.new("symlink").realpath

или readlink, как говорили другие

12 голосов
/ 14 августа 2014

Или вы можете попробовать:

File.realpath("symlink_path")

, который работает как для символических ссылок, так и для обычных файлов.

...