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 確保路徑存在。