四linux 軟連接和硬連接

1、連接的概念:

在Linux系統中,連接分爲兩種:一種被稱爲硬連接(Hard Link),另外一種被稱爲軟連接或符號連接(Symbolic Link)。在默認不帶參數的狀況下,執行ln命令建立的是硬連接

2、硬連接:

是指經過索引節點來進行連接。在linux的文件系統中,保存在磁盤分區中的文件不論是什麼類型都會給他分配一個編號,這個編號被稱爲索引節點號(Inode Index)
在Linux系統中,多個文件名指向同一個索引節點是正常且容許的。通常這種連接就稱爲硬連接。硬連接的做用之一是容許一個文件擁有多個有效路徑名,這樣用戶就能夠創建硬連接到重要的文件,以防止「誤刪」源數據(不少硬件,如netapp存儲中的快照功能就應用了這個原理,增長一個快照就多了一個硬連接)。爲何爲文件建立了一個硬連接就會防止數據誤刪呢?
由於文件系統的原理是,只要文件的索引節點還有一個以上的連接(僅僅刪除了該文件指向)。只刪除其中一個連接並不影響索引節點自己和其餘的連接(既數據文件實體並未被刪除),只有當最後一個連接唄刪除的後,此時若是有新的數據存儲到硬盤時。被刪除文件的數據塊及目錄的連接纔會被釋放,空間被新數據佔用覆蓋。此時,數據就再也沒法找回了。也就是說,在Linux系統中,刪除文件(其實目錄也是文件)的條件是與之相關的全部硬連接文件均被刪除。

3、軟連接:

軟連接有時也被稱爲符號連接(Symbolic Link)。軟連接文件就相似於Windows系統下的快捷方式。它其實是一個特殊的文件。在軟連接中,軟連接文件實際上就是一個文本文件,這個問價中包含有軟連接指向另外一個文件的位置信息內容,所以,經過訪問這個「快捷方式」就能夠迅速定位到軟連接所指向的源文件實體。

mkdir /test && cd /test&& touch testfile
ln testfile testfile_hard_link
ln -s testfile testfile_soft_link

ls -li * 能夠查看到inode信息

總結:node

一、硬連接與原文件的inode節點號相同。而軟鏈接的inode節點號不相同。
 二、目錄沒法建立硬連接,可是能夠建立軟鏈接
 三、軟鏈接能夠跨分區,硬連接不能夠。
 四、硬連接原文件刪除,文件依然能夠訪問。軟鏈接原文件刪除,連接文件失效

4、連接知識拓展:

一、軟鏈接的生產使用案例:linux

在咱們編譯apache軟件時,編譯路徑帶着版本號/application/apache2.2.21(爲了區分版本用,所以路徑也比較長),而在訪問目錄時又但願簡介,此時就能夠經過創建一個簡單的軟連接路徑文件,來達到方便訪問的目的。

二、硬連接的生產使用案例:apache

硬件存儲的快照功能。或者爲備份文件建立多個硬連接文件,防止誤刪除。

三、文件系統的知識:app

文件的訪問方式:filename->index(inode)
           index->data

derectory    123      345      567         789

indode table  

blocks
    文件系統的磁盤佈局 bootBlock   block group0 .... block group N
    Blocke group0: super block、 Group Descriptrs 、Data block Bitmap、Inode Table、Data blocks

  "進程還佔用文件,這時候斷電了!"
    Kernel沒有機會回收文件所佔用的磁盤空間了
    磁盤空間可能仍被標記爲「已用」
    文件系統可能會不一致
    死文件,誰也訪問不到了:已經沒有文件名指向這些空間了
    須要FSCK或其餘機制回收空間

5、例題:

一、Linux同過mkdir命令建立一個新目錄/test/ 它的硬連接數怎麼查看佈局

ls -ld /test/ 權限後面的 數字爲硬連接的數量爲2.

緣由:建立的目錄自己爲一個硬連接     
      新建目錄下的隱藏目錄(點號)爲建立的新目錄又是一個連接,因此爲2個硬連接    
      ls -lai 能夠查看驗證!

提示:硬連接就至關於文件的另外一個入口。code

相關文章
相關標籤/搜索