制作一个bash脚本,我在想方设法找出我的符号链接指向的内容。现在,我正在这样做,但这只适用于我的符号链接在当前目录中。有没有办法找出我的符号链接指向的是什么,如果它在另一个目录中?如何找出我的符号链接指向什么?
ls -l "symlink" | cut -d'>' -f2
制作一个bash脚本,我在想方设法找出我的符号链接指向的内容。现在,我正在这样做,但这只适用于我的符号链接在当前目录中。有没有办法找出我的符号链接指向的是什么,如果它在另一个目录中?如何找出我的符号链接指向什么?
ls -l "symlink" | cut -d'>' -f2
如果你有readlink(1)
实用工具(GNU的coreutils的一部分),这你想要做什么。否则,你有点儿小溪,我不知道任何简单的便携式等效物。
在一个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来提取所需的列。