對linux硬連接和軟連接理解

linux系統有有軟連接和硬連接兩種,所謂軟連接相似於windows系統中的快捷方式,源文件若是被刪除,軟連接將失敗。而硬連接則不一樣,即便源文件被刪除,文件依舊存在,這是爲何呢?下面我就爲你們簡單說明一下其中的緣由:
node

wKioL1ecKjiA4zXKAARNO-dL4vQ029.jpg

軟連接:linux

這是我畫的一張linux存儲文件的簡易圖,軟連接的鏈接道理是,在inode表中,存放指針位置並不是是指針,而是存放着一個文件的元數據路徑,經過路徑找到文件元數據,再找到文件自己。例如:/root/1爲原文件,/root/2爲軟連接文件windows

wKioL1ecMnqRFQwbAAAIwJpbTVE950.png

第一行爲inode號,這兩個文件擁有不一樣的inode號,2文件的文件大小爲1字節,這一個字節中寫的是「1」,也就是鏈接文件的名字,若是鏈接文件的名字叫123,那此處就會是3個字節。ide

軟連接的特色:spa

  • 軟連接有本身的文件屬性及權限等;指針

  • 可對不存在的文件或目錄建立軟連接;orm

  • 軟連接可交叉文件系統;blog

  • 軟連接可對文件或目錄建立;get

  • 建立軟連接時,連接計數 i_nlink 不會增長;it

  • 刪除軟連接並不影響被指向的文件,但若被指向的原文件被刪除,則相關軟鏈接被稱爲死連接(即 dangling link,若被指向路徑文件被從新建立,死連接可恢復爲正常的軟連接)。



硬連接:

硬連接的道理是,不一樣的文件擁有同一個的inode號碼,一個inode號碼能夠擁有不一樣的文件名,但所保存的數據只有一份。若是其中的一個文件名被刪除,僅僅是切斷文件名和inode號的關聯,對其餘連接和數據並不形成影響。

wKiom1ecNe_ShJQ7AAAHZoOPmo8412.png

這兩個文件擁有相同的inode號,包括權限大小也都相同,這就是硬連接。

硬連接的特色:

  • 文件有相同的 inode 及 data block;

  • 只能對已存在的文件進行建立;

  • 不能交叉文件系統進行硬連接的建立;

  • 不能對目錄進行建立,只可對文件建立;

  • 刪除一個硬連接文件並不影響其餘有相同 inode 號的文件。



建立軟連接的方法:

    ln -s TARGET LINK_NAME


建立硬連接的方法

    ln TARGET LINK_NAME


        -f : 鏈結時先將與 dist 同檔名的檔案刪除
  -d : 容許系統管理者硬鏈結本身的目錄
  -i : 在刪除與 dist 同檔名的檔案時先進行詢問
  -n : 在進行軟連結時,將 dist 視爲通常的檔案
  -s : 進行軟鏈結(symbolic link)
  -v : 在連結以前顯示其檔名
  -b : 將在鏈結時會被覆寫或刪除的檔案進行備份
  -S SUFFIX : 將備份的檔案都加上 SUFFIX 的字尾
  -V METHOD : 指定備份的方式
  --help : 顯示輔助說明
  --version : 顯示版本

相關文章
相關標籤/搜索