Linux軟鏈結和硬鏈結

2022-08-04 02:00:22 字數 1533 閱讀 3927

linux中的鏈結有兩種方式,軟鏈結和硬鏈結。本文試圖清晰徹底的解釋linux中軟鏈結和硬鏈結檔案的區別。

1、linux鏈結檔案

1)軟鏈結檔案

軟鏈結又叫符號鏈結,這個檔案包含了另乙個檔案的路徑名。可以是任意檔案或目錄,可以鏈結不同檔案系統的檔案。鏈結檔案甚至可以鏈結不存在的檔案,這就產生一般稱之為"斷鏈"的問題(或曰「現象"),鏈結檔案甚至可以迴圈鏈結自己。類似於程式語言中的遞迴。

用ln -s命令可以生成乙個軟連線,如下: [root@linux236 test]# ln -s source_file softlink_file

在對符號檔案進行讀或寫操作的時候,系統會自動把該操作轉換為對原始檔的操作,但刪除鏈結檔案時,系統僅僅刪除鏈結檔案,而不刪除原始檔本身。

2)硬鏈結檔案

info ln命令告訴您,硬鏈結是已存在檔案的另乙個名字(a "hard link" is another name for an existing file),這多少有些令人困惑。硬連線的命令是ln -d existfile newfile。硬鏈結檔案有兩個限制:

a、不允許給目錄建立硬鏈結;(超級使用者是可以的,見apue)         b、只有在同一檔案系統中的檔案之間才能建立鏈結。

對硬鏈結檔案進行讀寫和刪除操作時候,結果和軟鏈結相同。但如果我們刪除硬鏈結檔案的原始檔,硬鏈結檔案仍然存在,而且保留了願有的內容,這時,系統就「忘記」了它曾經是硬鏈結檔案。而把他當成乙個普通檔案。

2、兩者之間的區別

硬連線指通過索引節點來進行的連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號(inode index)。在linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止「誤刪」的功能。其原因如上所述,因為對應該目錄的索引節點有乙個以上的連線。只刪除乙個連線並不影響索引節點本身和其它的連線,只有當最後乙個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案才會被真正刪除。 

軟鏈結檔案有點類似於windows的快捷方式。它實際上是特殊檔案的一種。在符號連線中,檔案實際上是乙個文字檔案,其中包含的有另一檔案的位置資訊。

3、總結

軟連線:相當於windows中的快捷方式,可以連線目錄或檔案,可以跨越不同檔案系統,對軟連線的增改查直接反應到了原檔案上,刪除原檔案,軟連線就沒用了,刪除 軟連線檔案不會影響原檔案。

硬連線:與原檔案指向硬碟上的同一塊檔案資料區域(即指向同乙個inode),只能連線同一檔案系統(不同檔案系統的磁碟中檔案資料的儲存形式是有區別的),只能 連線檔案不能連線目錄,對硬連線的增改查直接反應到了原檔案上,刪除原檔案,只是刪除了inode的乙個引用,磁碟上的檔案資料依然存在,可將此時的硬連 接檔案看作是乙個普通的檔案,同理,刪除硬連線檔案也是一樣的道理。只有指向乙個inode的所有引用(檔名)都被刪除了,磁碟上的檔案資料才會被刪除。

Linux 硬鏈結和軟鏈結

硬鏈結是通過鏈結原始檔的索引節點來進行有效鏈結。linux系統中的每個檔案都有乙個自己的索引節點,如同資料庫中的每條記錄都有自己的唯一索引一樣。自我感覺硬鏈結就像是windows下乙個檔案的拷貝,唯一不同的地方是多個該檔案的拷貝 硬鏈結 通過原始檔的索引節點來共享和更新自己的內容,一旦該節點上的任一...

Linux軟鏈結和硬鏈結

1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...

Linux軟鏈結和硬鏈結

1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬鏈結 硬鏈結指通過索引節點來進行鏈結。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...