首页 > 解决方案 > 获取符号链接完整路径

问题描述

我想获得符号链接的完整路径。

考虑以下:

/path/to/folder/link.file链接到/path/to/folder/original.txt.

我需要获取链接的完整路径而不是原始文件,例如:

$fullpath = abs_path("link.file");

将返回/path/to/folder/link.file而不是/path/to/folder/original.txt.

我尝试阅读但无法获得有效的解决方案..

为了澄清,链接文件本身的绝对路径

标签: linuxperl

解决方案


使用不检查文件系统的方法,例如File::Spec::Functionsrel2abs

[~]$ perl -MCwd=abs_path -e'CORE::say abs_path($ARGV[0])' tmp
/tmp/ikegami

[~]$ perl -MFile::Spec::Functions=rel2abs -e'CORE::say rel2abs($ARGV[0])' tmp
/home/ikegami/tmp

当然,如果您可以保证它是相对路径,您可以简单地使用以下内容:

[~]$ perl -MCwd=getcwd -e'CORE::say getcwd()."/".$ARGV[0]' tmp
/home/ikegami/tmp

推荐阅读