linux鏈結分兩種,一種被稱為硬鏈結(hard link),另一種被稱為符號鏈結(symbolic【硬連線】link)。預設情況下,ln命令產生硬鏈結。
※軟鏈結可以看作是windows中的快捷方式,可以讓你快速鏈結到目標檔案或目錄。
※ 硬鏈結則透過檔案系統的inode來產生新檔名,而不是產生新檔案。
a是b的硬鏈結(a和b都是檔名),則a的目錄項中的inode節點號與b的目錄項中的inode節點號相同,即乙個inode節點對應兩個不同的檔名,兩個檔名指向同乙個檔案,a和b對檔案系統來說是完全平等的。如果刪除了其中乙個,對另外乙個沒有影響。每增加乙個檔名,inode節點上的鏈結數增加一,每刪除乙個對應的檔名,inode節點上的鏈結數減一,直到為0,inode節點和對應的資料塊被**。注:檔案和檔名是不同的東西,rm a刪除的只是a這個檔名,而a對應的資料塊(檔案)只有在inode節點鏈結數減少為0的時候才會被系統**。
【軟連線】
a是b的軟鏈結(a和b都是檔名),a的目錄項中的inode節點號與b的目錄項中的inode節點號不相同,a和b指向的是兩個不同的inode,繼而指向兩塊不同的資料塊。但是a的資料塊中存放的只是b的路徑名(可以根據這個找到b的目錄項)。a和b之間是「主從」關係,如果b被刪除了,a仍然存在(因為兩個是不同的檔案),但指向的是乙個無效的鏈結。
a.不能對目錄建立硬鏈結,原因有幾種,最重要的是:檔案系統不能存在鏈結環(目錄建立時的"…"除外,這個系統可以識別出來),存在環的後果會導致例如檔案遍歷等操作的混亂(du,pwd等命令的運作原理就是基於檔案硬鏈結,順便一提,ls -l結果的第二列也是檔案的硬鏈結數,即inode節點的鏈結數)b:不能對不同的檔案系統建立硬鏈結,即兩個檔名要在相同的檔案系統下。
c:不能對不存在的檔案建立硬鏈結,由原理即可知原因。
a.可以對目錄建立軟鏈結,遍歷操作會忽略目錄的軟鏈結。ln 語法格式b:可以跨檔案系統
c:可以對不存在的檔案建立軟鏈結,因為放的只是乙個字串,至於這個字串是不是對於乙個實際的檔案,就是另外一回事了
建立:
ln -s 【目標目錄】 【軟鏈結位址】
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
刪除:
rm -rf 【軟鏈結位址】
#正確的刪除方式(刪除軟鏈結,但不刪除實際資料)
rm -rf .
/test
#錯誤的刪除方式
rm -rf .
/test/
(這樣就會把原來test下的內容刪除)
修改
ln -snf 【新目標目錄】 【軟鏈結位址】
linux硬鏈結與軟鏈結區別
1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...
Linux 軟鏈結與硬鏈結區別
在linux系統中,一定會遇到這樣一種檔案,當我們使用ll 或者ls l命令來檢視他的時候,他的許可權這一項中會顯示的第乙個英文本母為l,這便是代表他是鏈結檔案。而鏈結檔案有分為軟鏈結和硬鏈結兩種,那他們有什麼區別呢?我這就來從以下八個方面來為大家介紹一下他們的區別。2.inode number i...
硬鏈結與軟鏈結區別
學過作業系統的人都應該了解硬鏈結與軟鏈結,我當時學的時候也是有點迷糊,其實硬鏈結與軟鏈結非常好理解。我們都知道windows裡面的快捷方式的概念吧,鏈結就相當於快捷方式,linux裡面建立軟鏈結的方式如下 軟鏈結相當於乙個指向檔案的乙個指標,而硬鏈結相當於建立了乙個檔案的副本。每個檔案都有乙個引用值...