2010-11-15 50 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來提取所需的列。

相關問題