linux之軟鏈接,硬鏈接

       要分清這兩種鏈接方式,首先得理解linux的分區方式,在linux分區中把磁盤分爲inode區和data blocks區(即數據實際所在區域),inode區包含了文件大小,創建時間,修改時間,所有者,所屬組,讀寫權限,數據所在的block號等信息inode區中的inode號(即索引節點號)纔是文件的唯一識別標示而不是文件名。系統或程序通過inode號尋找正確的文件數據塊,文件名只是幫助人們識別和記憶使用。

       即程序通過filename(文件名)獲取文件內容過程如下:

       filename   →  inode  → data blocks

​       查看inode號可用 stat + 文件名 或 ls -i 命令

       爲解決linux系統中文件共享使用,linux中引用了兩種鏈接,硬鏈接(hard link)和軟鏈接(又稱符號鏈接,即soft link 或者symbolic link)。

      【硬鏈接】       

        若一個inode號對應多個文件名,則稱這些文件爲硬鏈接。換句話說,硬鏈接就是一個文件使用了多個別名,不論用哪個檔名來編輯,最終都會寫入同一個inode和data block,均能進行數據的更改。​類似於備份。

       ​由於硬鏈接是有相同的inode號而文件名不同的文件,特性如下:

       a,​文件有相同的inode和data block;

       ​b,只有當文件存在時才能創建;

       c,不能對目錄創建,只可對文件創建​;

       d,刪除一個硬鏈接文件並不影響其他擁有相同inode的文件;

       e,不能交叉文件系統 進行硬鏈接的創建​;

       硬鏈接的創建​  ln  source(源文件) target( 目標文件)

       【軟鏈接】

         軟鏈接類似於windows中的快捷方式,就是一個普通文件,文件內容是另一個文件路徑名的指向。軟連接有自己的inode和data block。

         因此軟鏈接的創建沒有像硬鏈接的諸多限制:

         a,軟鏈接有自己的​文件屬性及權限;

         b,可對不存在的文件或目錄建立鏈接​(死鏈接);

         c,​對文件和目錄均可建立;

         d,刪除軟鏈接並不影響原文件,若原文件被刪,則相關軟鏈接成爲死鏈接​(即dangling link,若指向路徑的文件被重新建立,死鏈接可恢復爲正常鏈接);

         e,​可交叉文件系統創建;

         f,創建軟鏈接時,鏈接計數i_nlink不會增加;​

         軟鏈接的創建​   ln -s  source(源文件) target(目標文件)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章