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

时间:2010-11-15 06:03:30

标签: unix

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

 ls  -l "symlink" | cut -d'>' -f2

2 个答案:

答案 0 :(得分:25)

如果您拥有readlink(1)实用程序(GNU coreutils的一部分),它可以满足您的需求。否则你就像一条小溪,我不知道任何直截了当的&便携式等效物。

答案 1 :(得分:7)

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

stat -f %Y <filename>

例如:

% ln -sf /bsd ~/blah        
% stat -f %Y ~/blah
/bsd

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

$ stat -c %N /usr/bin/firefox
`/usr/bin/firefox' -> `../lib/firefox-3.6.12/firefox.sh'

然后,使用awk / cut和sed来提取和删除垃圾报价。

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