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 09:32
下一篇 2016-10-20 10:08

相關推薦

  • Linux網絡管理命令的使用

    網絡管理命令 ip命令 配置Linux網絡屬性:ip命令,不過該命令的操作只是臨時操作,重啟以后配置丟失 ip-show / manipulate routing, devices, policy routing and tunnels ip [ OPTIONS ] OBJECT { COMMAND | help }    &n…

    Linux干貨 2016-09-11
  • 腳本編寫規范

    腳本編寫規范 腳本名稱以.sh結尾,名稱見名知意 盡量使用UTF-8編碼,注釋及輸出盡量使用英文 一般給到執行權限,但一些關于變量的配置文件不用加執行權限 執行的時候可以使用bash執行,或者使用bash -x 調試執行 腳本首行以#!/bin/bash,無空格,不帶選項 第二行為空格或者添加一行空注釋 開始注釋內容:  #!/bin/bash&n…

    Linux干貨 2017-04-16
  • shell腳本作業

    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名, IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。 腳本代碼 #!/bin/bash #author:wzc         echo Hostname:…

    Linux干貨 2016-08-15
  • 硬軟鏈接的區別 節點 以及重定向和管道

    INODE全稱叫index node 表中包含文件系統所有文件列表   一個節點是在一個表項 包含有關文件的信息 ( 元數據 ) 包括: 文件類型,權限,UID,GID 鏈接數(指向這個文件名路徑名稱個數) 該文件的大小和不同的時間戳 指向磁盤上文件的數據塊指針 有關文件的其他數 1 文件引用一個是 inode號   2 我們是通過文件名…

    Linux干貨 2016-08-12
  • Linux中的賬號管理之命令的使用(中)

    linux中賬號管理的命令非常多,我這里主要介紹最常見的幾個命令,這些命令分別是針對用戶和組的管理 主要介紹對用戶管理的命令: 一、用戶創建:useradd useradd命令用于Linux中創建的新的系統用戶。useradd可用來建立用戶帳號。帳號建好之后,再用passwd設定帳號的密碼.而可用userdel刪除帳號。使用useradd指令所建立的帳號,實…

    Linux干貨 2016-08-07
  • Liunx系統命令的使用格式

    Liunx系統命令的格式 基本格式如下:               ~]# COMMAND OPTIONS ARGUMENTS COMMAND:      發起一個命令,請求內核將某個二進…

    Linux干貨 2016-10-28
欧美性久久久久