在没有 readlink 实用程序的情况下解析符号链接

Lom*_*ula 2 perl aix symlink

我正在尝试使用 perl oneliner 在 unix 命令行管道中使用正则表达式匹配来打印字符串。

ls -l /APPL

给出输出

lrwxrwxrwx 1 root system 4 Nov 27 12:07 /APPL -\> /PRD

我的目标是打印'PRD'

我正在使用的命令

ls -l /APPL | perl -ne 'print "$1\\n" if / \/APPL\s\S+\s\s\/(\S+)\s/'

我正在使用正则表达式调试器https://regex101.com/跟踪它,看起来它在\/ (\S+)\s处丢失了它

readlink我在没有命令行实用程序的系统上使用 AIX 。我知道我可以使用 awk,但这里不是这种情况。

ike*_*ami 5

打印符号链接的值:

readlink /APPL
Run Code Online (Sandbox Code Playgroud)
perl -le'print readlink( $ARGV[0] )' /APPL
Run Code Online (Sandbox Code Playgroud)

转换为绝对路径,并解析所有符号链接(如果有):

readlink -e /APPL
Run Code Online (Sandbox Code Playgroud)
perl -MCwd=abs_path -le'print abs_path( $ARGV[0] )' /APPL
Run Code Online (Sandbox Code Playgroud)
perl -le'use Cwd qw( abs_path ); print abs_path( $ARGV[0] )' /APPL
Run Code Online (Sandbox Code Playgroud)