Hoe krijg ik het doelwit van een symbolische link?

Ik heb een string die het bestandssysteempad naar een bestaande symbolische link bevat. Ik wil het pad krijgen waarnaar deze link verwijst.

Eigenlijk wil ik hetzelfde dat ik door dit stukje hacken heen zou komen:

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

maar ik wil het doen zonder beschietingen.


Antwoord 1, autoriteit 100%

Ik denk dat readlinkis wat u zoekt:

File.readlink("path/to/symlink")

Antwoord 2, autoriteit 70%

require 'pathname'
Pathname.new("symlink").realpath

of leeslink zoals anderen al zeiden


Antwoord 3, autoriteit 22%

Of je kunt het proberen:

File.realpath("symlink_path")

Wat werkt voor zowel symbolische links als normale bestanden.

Other episodes