我该如何找出我的符号链接指向什么?

18

编写一个 bash 脚本,我想找出一种方法来查找我的符号链接指向哪里。目前,我正在使用以下命令进行操作,但是这只能在当前目录下工作。如果符号链接在另一个目录中,有没有一种方法可以找出它所指向的位置?

 ls  -l "symlink" | cut -d'>' -f2
2个回答

25
如果你有`readlink(1)`实用工具(GNU coreutils的一部分),它可以完成你想要的功能。否则,我不知道是否有任何直接且可移植的等效工具。

9
在BSD工具链上,我正在执行以下操作:
stat -f %Y <filename>

例如:

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

在GNU工具链中,这并不容易,您可以使用类似以下的内容:

在GNU工具链上,这并不是那么容易。您可以尝试使用以下命令:

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

然后,使用awk/cut和sed来提取和删除无用的引号。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接