
我了解什麼是邏輯工作目錄。當您建立到目錄的符號鏈接,然後cd
使用該符號連結到該目錄時,您的邏輯工作目錄將變為符號連結的路徑+符號連結本身!例如:
$ pwd
/home/john/this_is_a_symbolic_link
但是邏輯工作目錄到底有什麼好處呢?
答案1
一個有點複雜的用例:
在某些系統上,使用者的主目錄可以透過例如自動安裝器(如在 Solaris 上)。
自動掛載程序的目的是節省本機系統資源並減少與多個伺服器共用檔案系統的系統之間的耦合。例如,大中型組織可能擁有數百個檔案伺服器和數千個工作站或其他節點,可隨時從任意數量的這些伺服器存取檔案。通常,在任何給定時間任何給定節點上只有相對少量的遠端檔案系統(導出)處於活動狀態。將此類檔案系統的安裝推遲到進程實際需要存取它時,可以減少追蹤此類安裝的需要,從而提高可靠性、靈活性和效能。
自動掛載程式可能會home
從某些中央檔案伺服器掛載 NFS 共用到諸如/a
或/tmp_mnt
類似的路徑下,然後在您登入時建立從/tmp_mnt/home/steve
(實體主目錄)到(邏輯主目錄)的符號連結。/home/steve
home
正如維基百科文章所提到的,這樣做的好處是,即使多個使用者處於活動狀態,也只需要一次掛載 NFS共享。當某人的主目錄不再使用時,符號連結可能會被刪除,而當所有使用者都登出時,掛載的 NFS 共享甚至可能會被完全卸載。
一個更簡單的例子:
假設您的 上空間不足/usr/local
。然後,您可以新增磁碟並將它們安裝為例如/data/disk1
和/data/disk2
。然後,您可能決定複製/usr/local/bin
to/data/disk1
和/usr/local/lib
to的舊內容/disk/data2
,並重新建立/usr/local/bin
和/usr/local/lib
作為這兩個目錄的符號連結。
使用 更改目錄cd /usr/local/bin
將在物理上將您移動到,/data/disk1
但從邏輯上講您將位於/usr/local/bin
.這也具有以下效果:存取實用程式/usr/local/bin
將透明地存取其物理位置,而/data/disk1
無需更新$PATH
變數。
另一個:
您可以從使用者安裝的 USB 記憶棒或其他儲存裝置的某個位置建立符號/media
連結/home/steve/my_work_files
。這樣做的好處是您將能夠cd
進入~/my_work_files
而不必記住/media
文件所在的位置。
答案2
$ cd this_is_a_symbolic_link
…
$ pwd
$ cd ..