如何获得符号链接的目标?

kch*_*kch 48 ruby symlink

我有一个字符串,其中包含现有符号链接的文件系统路径.我想获得此链接指向的路径.

基本上我想要通过这些hackery得到同样的东西:

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

但是我想在没有炮轰的情况下这样做.

Ins*_*lah 66

我认为readlink就是你要找的东西:

File.readlink("path/to/symlink")
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果符号链接是相对的或存在一系列符号链接,则不会跟随所有链接或返回完整路径-Pathname#realpath will. (15认同)

pio*_*rsz 46

require 'pathname'
Pathname.new("symlink").realpath
Run Code Online (Sandbox Code Playgroud)

或其他人说的readlink

  • 而不是Pathname.new("/ path/to/symlink").realpath.to_s :) ..这肯定比使用system()更好 (3认同)

Jua*_*ina 12

或者您可以尝试:

File.realpath("symlink_path")
Run Code Online (Sandbox Code Playgroud)

这适用于符号链接和普通文件.