文件readlink功能

时间:2016-06-14 21:01:11

标签: file elixir symlink

假设您有一个符号链接: / tmp / zoo2 - >的/ tmp /动物园

你只知道 / tmp / zoo2 ,如何解决符号链接到 / tmp / zoo

在shell中使用 readlink 或在Ruby中执行 File.readlink

Elixir有类似的东西吗?

1 个答案:

答案 0 :(得分:3)

您可以使用:file.read_link

iex(1)> :file.read_link "/tmp/zoo2"
{:ok, '/tmp/zoo'}

如果链接是相对的,您可以通过调用:filename.absname获取绝对目标,将链接目录作为基本目录:

iex(1)> link = "/tmp/zoo2"
"/tmp/zoo2"
iex(2)> {:ok, relative_target} = :file.read_link link
{:ok, 'zoo'}
iex(3)> absolute_target = :filename.absname relative_target, :filename.dirname link
"/tmp/zoo"