与 readlink 行为相同的 Perl 命令?

标签 perl gnu-coreutils

与 GNU coreutils 命令等效的 Perl 命令是什么 readlink -f

If any component of the file name except the last one is missing or unavailable, readlink produces no output and exits with a nonzero exit code. A trailing slash is ignored.

最佳答案

您可以使用 Cwd :

use Cwd 'abs_path';
my $path = "/some/arbitrary/path";
print abs_path($path);

测试:

for q in exists imaginary imarginary/imaginary ; do
   echo "$q"
   echo -n "readlink -f: " ; readlink -f "$q"
   echo -n "abs_path:    " ; perl -MCwd=abs_path -E'say abs_path $ARGV[0]' "$q"
   echo
done

输出:

exists
readlink -f: /home/eric/exists
abs_path:    /home/eric/exists

imaginary
readlink -f: /home/eric/imaginary
abs_path:    /home/eric/imaginary

imaginary/imaginary
readlink -f: abs_path:

关于与 readlink 行为相同的 Perl 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19001957/

相关文章:

python - shell脚本查找字符串并递归打印当前行和下一行

html - 将当前用户与登录计算机的员工列表进行比较 Perl、CGI

linux - bash 4.3.43 和 4.4.19 之间的变量引用区别

linux - 检查固定宽度文件的记录长度

c - xstrtoul() 在哪里/如何定义?

正则表达式完全匹配 - 名字和姓氏之间有一个空格

multithreading - Perl Net::SSH2 线程崩溃

regex - 正则表达式 perl 抓取文本 block

linux - 我在哪里可以找到 Unix 实用程序的源代码?