Linux系統的硬鏈接和軟鏈接

        硬連接與軟連接是 Linux 文件系統中的一個重要概念,其涉及文件系統中的索引節點 (index node 又稱 inode),而索引節點對象是 Linux 虛擬文件系統 (VFS) 的四個基本概念之一。node

一、硬鏈接linux

       爲解決文件的共享使用,Linux 系統引入了兩種連接:硬連接 (hard link) 與軟連接(又稱符號連接,即 soft link 或 symbolic link)。連接爲 Linux 系統解決了文件的共享使用,還帶來了隱藏文件路徑、增長權限安全及節省存儲等好處。若一個 inode 號對應多個文件名,則稱這些文件爲硬連接。換言之,硬連接就是同一個文件使用了多個別名(見 圖 2.hard link 就是 file 的一個別名,他們有共同的 inode)。硬連接可由命令 link 或 ln 建立。以下是對文件 oldfile 建立硬連接。安全

link oldfile newfile 
 ln oldfile newfile

因爲硬連接是有着相同 inode 號僅文件名不一樣的文件,所以硬連接存在如下幾點特性:spa

  • 文件有相同的 inode 及 data block;
  • 只能對已存在的文件進行建立;
  • 不能交叉文件系統進行硬連接的建立;
  • 不能對目錄進行建立,只可對文件建立;
  • 刪除一個硬連接文件並不影響其餘有相同 inode 號的文件。

 

       軟連接與硬連接不一樣,若文件用戶數據塊中存放的內容是另外一文件的路徑名的指向,則該文件就是軟鏈接。軟連接就是一個普通文件,只是數據塊內容有點特殊。軟連接有着本身的 inode 號以及用戶數據塊(見 圖 2.)。所以軟連接的建立與使用沒有相似硬連接的諸多限制:對象

  • 軟連接有本身的文件屬性及權限等;
  • 可對不存在的文件或目錄建立軟連接;
  • 軟連接可交叉文件系統;
  • 軟連接可對文件或目錄建立;
  • 建立軟連接時,連接計數 i_nlink 不會增長;
  • 刪除軟連接並不影響被指向的文件,但若被指向的原文件被刪除,則相關軟鏈接被稱爲死連接(即 dangling link,若被指向路徑文件被從新建立,死連接可恢復爲正常的軟連接)。
圖 2. 軟連接的訪問

圖 2. 軟連接的訪問

待續。。。。。。。。。。。索引

相關文章
相關標籤/搜索