Linux中軟連結和硬連結之間有什麼區別和聯絡?

老男孩IT教育機構發表於2022-03-09

  連結是一種在共享檔案和訪問它的使用者的若干目錄項之間建立聯絡的一種方法。在Linux作業系統中,連結被分為兩種:軟連結(Soft Link,符號連結)和硬連結(Hard Link)。那麼什麼是軟連結?什麼是硬連結?Linux中軟連結和硬連結之間有什麼區別和聯絡?以下是詳細的內容介紹。

  為解決檔案的共享使用,Linux系統引入了兩種連結:硬連結和軟連結。在Linux中,後設資料中的inode號才是檔案的唯一標識而非檔名,檔案內容要透過inode號來尋找,猶如交通指示牌一樣,指示著資料找尋的方向。

  硬連結(Hard Link)

  A和B的硬連結,則A的目錄項中的inode節點號與B的目錄項中的inode節點號相同,即一個inode節點對應兩個不同的檔名,兩個檔名指向同一個檔案,A和B對檔案系統來說是完全平等的。如果刪除其中一個,對另外一個沒有任何影響。每增加一個檔名,inode節點上的連結數增加一,每刪除一個對應的檔名,inode節點上的連結數減一,直到為0,inode節點和對應的資料塊被回收。

  注:檔案和檔名是不同的東西,rm A刪除的只是A這個檔名,而A對應的資料塊只有在inode節點連結數減少為0的時候才會被系統回收。

  軟連結(Soft Link)

  A是B的軟連結,A的目錄項中的inode節點號與B的目錄項中的節點號不相同,A和B指向的是兩個不同的inode,繼而指向兩塊不同的資料塊。但是A的資料塊中存放的只是B的路徑名。A和B之間是主從關係,如果B被刪除了,A依然存在,但指向的是一個無效的連結。

  Linux中軟連結和硬連結之間有什麼區別和聯絡?

  概念不同:

  軟連結可以理解成快捷方式,和原檔案的inode號不一樣,它和Windows下的快捷方式的作用是一樣的,軟連結資料塊中記錄的亦是相對路徑指向。

  硬連結和原檔案對應一個inode,就是對應一個檔案,可以理解成一個檔案有幾個別名。

  用法不同:

  軟連結可以理解成快捷方式,也清楚知道原檔案在哪裡。它和Windows下的快捷方式的作用是一樣的,和Windows一樣,刪除原始檔,快捷方式也就無法使用了。

  硬連結可以看成一個備份,但並沒有增加空間,因為檔案就一個,這種可以防止原始檔刪除後不能使用問題;同時也有侷限性,不能對目錄和跨檔案系統使用。

  語法格式(ln):

  硬連結:ln 原始檔 連結名

  軟連結:ln -s 原始檔 連結名

  注意:連結的原始檔路徑要寫絕對路徑,否則會報錯。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2868576/,如需轉載,請註明出處,否則將追究法律責任。

相關文章