2010-11-15 53 views
15

制作一个bash脚本,我在想方设法找出我的符号链接指向的内容。现在,我正在这样做,但这只适用于我的符号链接在当前目录中。有没有办法找出我的符号链接指向的是什么,如果它在另一个目录中?如何找出我的符号链接指向什么?

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

回答

23

如果你有readlink(1)实用工具(GNU的coreutils的一部分),这你想要做什么。否则,你有点儿小溪,我不知道任何简单的便携式等效物。

6

在一个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来提取所需的列。

相关问题