【Linux入門學習之】Linux串連檔案:硬串連和軟串連

來源:互聯網
上載者:User

Linux下面的串連檔案有2種:一種是類似與Windows的捷徑功能的檔案,可以讓我們快速串連到目標檔案,稱為符號串連(symbolic link);另一種則是通過檔案系統的inode串連產生新檔案名稱,而不是產生新檔案,稱為硬串連(hard link)。

一、hard link(硬串連或實際串連)

在linux檔案系統中,每個檔案都會佔用一個inode,檔案內容由inode的記錄來指向(block)。想要讀取該檔案,必須要通過目錄記錄的檔案名稱來指向正確的inode號碼才能讀取。也即:檔案名稱只與目錄有關,檔案內容與inode有關。hard link就是有多個檔案名稱對應到同一個inode號碼,它只是在某個目錄下面建立一條檔案名稱串連到某inode號碼的關聯記錄而已。

實際串連的檔案讀取如下:


根據,我們可以通過1或2的目錄inode指定的block找到兩個不同的檔案名稱,而不管使用哪個檔案名稱都可以指到real那個inode去讀取到最終的資料。這樣做的最大的好處就是安全。如果使用者將任何一個檔案名稱刪除,其實inode和block都還是存在的。此時可以通過另一個“檔案名稱”來讀取到正確的檔案資料。此外,不論使用那個檔案名稱來編輯都可以將結果寫入到相同的inode和block中。

一般來說,使用hard link設定串連檔案時,磁碟的空間與inode數目都不會改變。它只是在某個目錄下的block多寫入一個關聯資料而已。特殊情況就是,將要添加這條資料到某個block時它剛好滿了,這樣會導致磁碟空間的變化。不過,一般hard link用掉的關聯資料都很小,所以通常不會改變inode與磁碟空間的大小。

注意:hard link僅能在單一檔案系統裡進行。

而且:不可以串連到目錄。因為串連到目錄的時候,串連的資料需要連同被串連的目錄下面的所有資料都建立串連。


二、symbolic link(符號串連,即捷徑)

它也叫軟串連,是建立一個獨立的檔案,而這個檔案會讓資料的讀取指向它串連的那個檔案的檔案名稱。當源檔案被刪除之後,symbolic link會開啟不了。

符號串連檔案讀取如下:


由1號inode讀取到串連檔案的內容僅有檔案名稱,根據檔案名稱串連到正確的目錄去取得目標檔案的inode。最終讀取到正確的資料。

symbolic link會佔用inode和block。

需要注意的是,改動symbolic link檔案時,其實改動的就是源檔案。

軟串連可以跨檔案系統,也可以和目錄串連。

執行個體:

分別建立檔案linktest的硬串連link1和軟串連link2.ln命令不加任何參數時,預設建立硬串連。

可以看出,硬串連檔案和源檔案的屬性完全相同,包括inode號碼。

下面刪除源檔案,發現硬串連仍然可以讀取,而軟串連不能讀取。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.