-
軟連接和硬鏈接圖解
-
硬鏈接
-
符號鏈接
-
軟鏈接和硬鏈接詳解
軟鏈接和硬鏈接詳解
Linux下的鏈接文件有點類似于Windows的快捷方式,但又不完全一樣。鏈接文件有兩種:一種是硬鏈接,另一種是符號鏈接(又稱軟鏈接)。
UNIX文件系統提供了一種將不同文件鏈接至同一個文件的機制,我們稱這種機制為鏈接。它可以使得單個程序對同一文件使用不同的名字。這樣的好處是文件系統只存在一個文件的副本,系統簡單地通過在目錄中建立一個新的登記項來實現這種連接。
軟連接和硬鏈接圖解
硬鏈接
硬鏈接是通過索引節點進行的鏈接。 該登記項具有一個新的文件名和要連接文件的inode 號,文件的目錄登記項就是所謂的文件硬鏈接(硬鏈接,目錄登記項: 文件名‐‐>文件的inode;文件名可以有多個,但文件inode 只是一個)。不論一個文件有多少硬鏈接,在磁盤上只有一個描述它的inode, 只要該文件的鏈接數不為0,該文件就保持存在。硬鏈接不能跨越文件系統,為避免無限遞歸,一般也不能在目錄上建立hard link。 硬連接是直接建立在節點表上的(inode),建立硬連接指向一個文件的時候,會更新節點表上面的計數值。舉個例子,一個文件被連接了兩次(硬連接),這個文件的計數值是3,而無論通過3個文件名中的任何一個訪問,效果都是完全一樣的,但是如果刪除其中任意一個,都只是把計數值減1,不會刪除實際的內容的,(任何存在的 文件本身就算是一個硬連接)只有計數值變成0也就是沒有任何硬連接指向的時候才會真實的刪除內容。對任何一個硬鏈接文件修改,都會對原文件進行修改。
硬鏈接可由命令 link 或 ln 創建,如:
link oldfile newfile
ln oldfile newfile
符號鏈接
軟鏈接(也叫符號鏈接)它是指向另一個文件的特殊文件,這種文件的數據部分僅包含它所要鏈接文件的路徑名。軟鏈接是為了克服硬鏈接的不足而引入的,軟鏈接不直接使用inode 號作為文件指針,而是使用文件路徑名作為指針(軟鏈接:文件名+數據部分‐‐>目標文件的路徑名)。軟件有自己的inode,并在磁盤上有一小片空間存放路徑名。因此,軟鏈接能夠跨文件系統,也可以和目錄鏈接; 其二,軟鏈接可以對一個不存在的文件名進行鏈接,但直到這個名字對應的文件被創建后,才能打開其鏈接。當軟鏈接指向的文件刪除重命名或移動后,軟鏈接并不會發生更新,會維持原來的值不變。
例如某個文件文件系統空間已經用完了,但是現在必須在該文件系統下創建一個新的目錄并存儲大量的文件,那么可以把另一個剩余空間較多的文件系統中的目錄鏈接到該文件系統中,這樣就可以很好的解決空間不足問題。刪除軟鏈接并不影響被指向的文件,但若被指向的原文件被刪除,則相關軟連接就變成了死鏈接。
使用-s選項的ln命令即可創建符號鏈接,命令如下:
ln -s old.file soft.link
ln -s old.dir soft.link.dir
原創文章,作者:M20_he,如若轉載,請注明出處:http://www.www58058.com/43595