Command-Line
僅查找符號連結的目的地
為了在 shell 腳本中使用,我正在尋找一種命令行方式來獲取符號連結的目的地。到目前為止,我最接近的是
stat -N src
,它輸出src -> dst
. 當然我可以解析輸出並得到dst
,但我想知道是否有一些直接的方式來獲取目的地。
如果可用,另一種選擇是使用專門設計的命令
readlink
。例如
$ readlink -f `command -v php` /usr/bin/php7.1
在 Mac OS X 和 FreeBSD/NetBSD/等上。它的:
stat -f %Y <filename>
更一般地說,我想解決方案是(stat –printf=%N 使用奇怪的引號):
ls -l b | sed -e 's/.* -> //'
例子:
# ln -s a b # stat -f %Y b a
另一種方法是:
# find b -maxdepth 0 -printf %l a#
最後一行被破壞了,因為它沒有換行符,但是如果您需要變數中的結果,那很好,就像這樣
# f=$(find b -maxdepth 0 -printf %l) # echo $f a
如果碰巧是一個目錄,
-maxdepth
則需要它來防止find
下降到目錄中。b