编写一个 bash 脚本,我想找出一种方法来查找我的符号链接指向哪里。目前,我正在使用以下命令进行操作,但是这只能在当前目录下工作。如果符号链接在另一个目录中,有没有一种方法可以找出它所指向的位置?
ls -l "symlink" | cut -d'>' -f2
编写一个 bash 脚本,我想找出一种方法来查找我的符号链接指向哪里。目前,我正在使用以下命令进行操作,但是这只能在当前目录下工作。如果符号链接在另一个目录中,有没有一种方法可以找出它所指向的位置?
ls -l "symlink" | cut -d'>' -f2
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来提取所需列。