1. 程式人生 > >軟連結ln -s以及如何解決其產生“Too many levels of symbolic links ”的錯誤?

軟連結ln -s以及如何解決其產生“Too many levels of symbolic links ”的錯誤?

Q1:如何利用ln -s來建立快捷方式?

A1:ln(link,連結檔案):

Windows中的快捷方式,實際上快捷方式和它指向的檔案是獨立的兩個檔案,兩個都佔硬碟空間,只不過使用者訪問快捷方式時,其效果等同於訪問指向的檔案;

Linux中有兩種連結檔案:

1)軟連結(符號連結symbol),等同於Windows中快捷方式ln -s 原始檔名 符號連結檔名,原始檔名和符號連結檔名是主從關係,源被刪了,符號連結也就失效了, eg: ln -s src.c linker.c (linker.c就是src.c的一個符號連結檔案);

2)硬連結,ln 原始檔名 符號連結檔名,原始檔名和符號連結檔名是並列關係,源被刪了,符號連結依然有效。硬連結實際上和原始檔在硬碟中是同一個東西,效果類似於硬碟上的一個檔案,在檔案系統上,在我們看來有好多個檔案一樣。每次刪除一個檔案時,只要他還有其他的硬連結存在,這個檔案就不會被真正刪除。只有等所有的連結檔案都刪除掉了,這個檔案才會被真正從硬碟上刪除。

Q2:如何解決ln -s軟連結產生“Too many levels of symbolic links ”的錯誤? A2:在做ln的時候要將檔案的絕對路徑下的完整目錄寫上去! 例如想將/mnt/hgfs/下的windows_share/資料夾的連結儲存到宿主目錄:
ln -s /mnt/hgfs/windows_share/ /home/grush/
(tip: grush是當前普通使用者的宿主目錄名,每個人都不一樣,先輸入cd ~切換到宿主目錄,然後輸入pwd檢視宿主目錄的絕對路徑,第二個資料夾的名字就是宿主目錄名 )