readlink — 讀取符號連結的目標路徑

讀取符號連結的目標路徑,-f 解析最終絕對路徑。

語法

readlink [選項] 路徑

常用選項

選項 說明 範例
-f 遞迴解析所有連結,輸出正規化絕對路徑(目標必須存在) readlink -f /usr/bin/python3
-e 同 -f 但路徑中的每個元件都必須存在 readlink -e /path/link
-m 同 -f 但允許路徑中的元件不存在 readlink -m /path/nonexist
-n 不輸出結尾換行符 readlink -n link
-s 靜默模式(不顯示錯誤) readlink -s link

使用範例

範例 1:讀取符號連結目標

顯示符號連結直接指向的路徑(不解析多層連結)。

$ readlink /usr/bin/python3
python3.11
範例 2:取得最終絕對路徑(-f)

遞迴解析所有層的符號連結,回傳最終的實際絕對路徑。

$ readlink -f /usr/bin/python3
/usr/bin/python3.11
範例 3:在腳本中取得腳本真實路徑

即使腳本是透過符號連結呼叫,也能取得其真實所在路徑。

$ SCRIPT_PATH=$(readlink -f "$0")\nSCRIPT_DIR=$(dirname "$SCRIPT_PATH")

常見錯誤與排錯

readlink: path: No such file or directory
原因
路徑不存在(-f 選項要求最終目標必須存在)。
解法
改用 -m 選項允許路徑不存在,或用 -e 確保路徑存在。

延伸閱讀