如何找出我的符号链接指向的内容?

Str*_*rry 16 unix

制作一个bash脚本,我试图找出一种方法来找出我的符号链接指向的内容.现在,我正在这样做,但这只有在我的符号链接在当前目录中时才有效.有没有办法找出我的符号链接指向的内容,如果它在另一个目录中?

 ls  -l "symlink" | cut -d'>' -f2
Run Code Online (Sandbox Code Playgroud)

zwo*_*wol 25

如果您拥有该readlink(1)实用程序(GNU coreutils的一部分),它可以满足您的需求.否则你就像一条小溪,我不知道任何简单和便携的等价物.


Edd*_*ett 8

在BSD工具链上,我正在做:

stat -f %Y <filename>
Run Code Online (Sandbox Code Playgroud)

例如:

% ln -sf /bsd ~/blah        
% stat -f %Y ~/blah
/bsd
Run Code Online (Sandbox Code Playgroud)

在GNU工具链上它不是那么容易,你可以使用类似的东西:

$ stat -c %N /usr/bin/firefox
`/usr/bin/firefox' -> `../lib/firefox-3.6.12/firefox.sh'
Run Code Online (Sandbox Code Playgroud)

然后,使用awk/cut和sed来提取和删除垃圾引号.

或者使用更麻烦的解决方案,ls -al并使用awk/cut来提取所需的列.