制作一个bash脚本,我正在试图找出一种方法来找出我的符号链接指向的内容。现在,我正在这样做,但这只有在我的符号链接在当前目录中时才有效。有没有办法找出我的符号链接指向的内容,如果它在另一个目录中?
ls -l "symlink" | cut -d'>' -f2
答案 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来提取所需的列。