Linux下軟鏈接與硬鏈接

Linux下軟鏈接與硬鏈接的區別

Linux中的文件都文件名和數據,在linux上面被分為兩個部分:元數據與數據。用戶數據,即文件數據塊(data block),數據塊是記錄文件真實內容的地方,而元數據是文件的附加屬性,如大小,創建時間,所有者等信息。在Linux中,元數據中的inode號(inode是文件的元數據的一部分,但其不包含文件名,inode號即索引節點號)才是文件的唯一標識而不是文件名。文件名僅是為了方便人們的記憶和使用,系統或程序通過inode號尋找正確的文件數據快。下圖為程序通過文件名獲取文件內容的過程:

blob.png

                   

Linux 系統中查看 inode 號可使用命令 stat ls –i

blob.png

硬鏈接:

硬連接指通過索引節點來進行連接。在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。一般這種連接就是硬連接硬鏈接是直接建立在節點表上的(inode),建立硬鏈接指向一個文件的時候,會更新節點表上面的計數值。舉個例子,一個文件被連接了兩次(硬鏈接),這個文件的計數值是3,而無論通過3個文件名中的任何一個訪問,效果都是完全一樣的,但是如果刪除其中任意一個,都只是把計數值減1,不會刪除實際的內容的,(任何存在的文件本身就算是一個硬連接)只有計數值變成0也就是沒有任何硬鏈接指向的時候才會真實的刪除內容。

硬鏈接特性:

文件有相同的 inode 及 data block;

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

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

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

刪除一個硬鏈接文件并不影響其他有相同 inode 號的文件。

 

軟鏈接

符號連接(Symbolic Link),也叫鏈軟,軟鏈接文件有類似于Windows的快捷方式。它實際上是一個特殊的文件。在符號連接中,文件實際上是一個文本文件,其中包含的有另一文件的位置信息。軟鏈接不直接使用inode號作為文件指針,而是使用文件路徑名作為指針(軟鏈接:文件名 + 數據部分–>目標文件的路徑名)。軟件有自己的inode,并在磁盤上有一小片空間存放路徑名。因此,軟鏈接能夠跨文件系統,也可以和目錄鏈接!其二,軟鏈接可以對一個不存在的文件名進行鏈接,但直到這個名字對應的文件被創建后,才能打開其鏈接。

軟鏈接的特性:

軟鏈接有自己的文件屬性及權限等;

可對不存在的文件或目錄創建軟鏈接;

軟鏈接可交叉文件系統;

軟鏈接可對文件或目錄創建;

創建軟鏈接時,鏈接計數 inlink 不會增加;

 

硬鏈接與軟鏈接是 Linux 文件系統中的一個重要概念,其涉及文件系統中的索引節點 (index node 又稱 inode),而索引節點對象是 Linux 虛擬文件系統 (VFS) 的四個基本概念之一。通過剖析硬鏈接與軟鏈接的聯系與區別,我們可更好的了解 Linux 中 VFS 這一通用文件模型。并讓 Linux 普通用戶和系統管理員正確使用硬鏈接與軟鏈接,幫助文件系統開發者獲取 inode 的相關知識。

原創文章,作者:征(_少,如若轉載,請注明出處:http://www.www58058.com/52992

(0)
征(_少征(_少
上一篇 2016-10-20
下一篇 2016-10-20

相關推薦

  • Linux Cluster講解

    什么是集群     集群是一組的、通過高速的計算機,它們構成了一個組,并以單一系統的模式加以管理。一個客戶與集群相互作用時,集群像是一個獨立的服務器。集群配置是用于提高可用性和可縮放性。     和傳統的高性能計算機技術相比,集群技術可以利用各檔次的服務器作為節點,系統…

    Linux干貨 2016-11-07
  • ?文本編輯器nano

    新建/打開文件     nano 路徑+文件名,文件存在則為打開,否則新建;(未輸入文件名,編輯完成后,保存退出會提示輸入文件名); nano     note:nano中,黑底白字表示快捷鍵操作。其中“^”表示Ctrl鍵,則Ctrl+G就表示成“^G”?!癕”表示 Alt鍵,則Alt+W表示為“M…

    Linux干貨 2016-05-05
  • 在VMware Workstation上安裝CentOS 7

    1.新建虛擬機設備設置 2.開啟此虛擬機,進行安裝設置    需設置4處  時間,SOFTWARE SELECTION,分區,NETWORK & HOST NAME    (1) 首先 時間設置,選中上海時間,設置現在的Windows時間,設置好后,點擊Done退出。(下面同意Done保存退…

    2017-07-15
  • 走向了一條不歸路 – – 開始

    前言:很高興在這里認識大家,跟大家一起學習一起進步。  基礎知識 1.計算機系統的組成 2.計算機的體系結構 3.存儲網絡 DAS–直接連接存儲   (數據塊)   存儲設備與主機的緊密相連       1.管理成本較低,實施簡單   &…

    2017-07-16
  • Linux之啟動和內核管理

     Linux之啟動和內核管理     本文主要包括以下內容一  CentOS 5和6的啟動流程二  服務管理三  Grub管理四  自制Linux五  啟動排錯六  編譯安裝內核   Linux組成Linux: kernel+rootfskernel: 進程管…

    Linux干貨 2016-09-15
  • Linux進程管理

    一、程序與進程           1、程序         程序是為了達到特定的目的,可以被計算機運行并且由命令代碼組成的語句序列。       &…

    Linux干貨 2015-05-14
欧美性久久久久