Linux
創建符號連結時,什麼時候應該使用絕對路徑名?
我在這里和幾本書中讀過,首選使用相對路徑製作符號連結,因為如果您移動連結和文件,它不會中斷。我想知道我們是否應該始終創建相對路徑符號連結?例如,如果我想連結
/etc/passwd
到目前目錄,我應該使用絕對路徑還是相對路徑?
ln -rs /etc/passwd passwd-symlink
將創建相對路徑連結,但這是必要的嗎?
對此可能沒有一個明確的答案,並且在許多情況下,符號連結目標是相對的還是絕對的並不特別重要。
如果以下任何情況適用,則使用相對符號連結可能是一個好主意,因為在這些情況下連結將保持有效:
- 如果目標位於同一目錄樹中並且可以移動整個樹
- 如果目標在同一個文件系統中,並且它在將來的某個掛載中被掛載到其他地方(可能在救援現場環境或容器或另一個系統上)
但是,如果以下任何一項適用,絕對連結可能會更好
- 目標位於完全不同的目錄中,其中正確數量的
../
序列可能不清楚- 您想指向一個與目前目錄無關的非常具體的文件(例如,/etc 中的配置文件)
- 如果您想非常清楚 this 指向什麼文件,那麼當實際連結可能變成指向符號連結或遍歷目錄符號連結的目標的符號連結迷宮時……