我有一个字符串,包含指向现有符号链接的文件系统路径。我想获取此链接指向的路径。
基本上,我想获得与以下代码段通过技巧获得的相同结果:
s = "path/to/existing/symlink"
`ls -ld #{s}`.scan(/-> (.+)/).flatten.last
但我想在不使用外壳的情况下完成它。
我认为你要找的是readlink:
File.readlink("path/to/symlink")
ls -ld ...
也不能给出真实路径。 - Inshallahsymlink
,但它既不会解析path
也不会解析to
。 - undefinedrequire 'pathname'
Pathname.new("symlink").realpath
如其他人所说,您可以使用readlink
或者您可以尝试:
File.realpath("symlink_path")
可同时用于符号链接和普通文件。
readlink path/to/symlink
命令。永远不要解析ls
的输出。 - OrangeDog