?Linux 硬連接與軟連接的區別

    Linux 硬連接與軟連接的區別


                                1476965794247694.jpg

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

         

image001.jpg

圖 1

Inode

    Inode 是liunx 操作系統中的一種數據結構,其本質是結構體,它包含了與各個文件相關的一些重要信息。在linux中創建文件系統時,同時將會創建大量的inode 。通常,文件系統磁盤空間中大約百分之一空間分配給了inode表。

    有時人們使用了一些不同的術語,如inode和索引編號這兩個術語非常相似,但他們所指的并不是同樣的概念。Inode 指的是數據結構;而索引編號實際上是inode的標示via你好,因此稱其inode編號或索引編號。索引編號只是文件相關信息中一項重要的內容。

硬鏈接

    為解決文件的共享使用,Linux 系統引入了兩種鏈接:硬鏈接 (hard link) 與軟鏈接(又稱符號鏈接,即 soft link 或 symbolic link)。鏈接為 Linux 系統解決了文件的共享使用,還帶來了隱藏文件路徑、增加權限安全及節省存儲等好處。若一個 inode 號對應多個文件名,則稱這些文件為硬鏈接。

    硬鏈接,指通過索引節點來進行鏈接。在linux的文件系統中,保存在linux 分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(inode index)。Linux中多文件名指向同一索引節點是存在的。一般這種連接就是硬連接。硬連接的作用是允許一個文件擁有多個有效路徑名,這樣用戶就可以建立硬鏈接到重要文件,以防止”誤刪”的功能,其原因如上所述,因為對應的該目錄的索引節點有一個以上的鏈接。只刪除一個鏈接并不影響索引節點本身和其他鏈接,只有當最后一個鏈接被刪除后,文件的數據塊及目錄的鏈接才或被釋放。也就是說文件真正刪除的條件是與之相關的所有硬連接文件均被刪除。

    1、在linux 中硬鏈接可由命令 link 或 ln 創建。                      

    ln   file1  linkname

    link  file1  linkname

    刪除鏈接 rm linkname    link linkname

2、由于硬鏈接是有著相同 inode 號僅文件名不同的文件,因此硬鏈接存在以下幾點特性:

        文件有相同的 inode 及 data block;

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

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

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

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

 

軟鏈接

    軟鏈接與硬鏈接不同,若文件用戶數據塊中存放的內容是另一文件的路徑名的指向,則該文件就是軟連接。軟鏈接就是一個普通文件,只是數據塊內容有點特殊。軟鏈接有著自己的 inode 號以及用戶數據塊(見 圖 2.)。

    因此軟鏈接的創建與使用沒有類似硬鏈接的諸多限制:

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

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

    軟鏈接可交叉文件系統;

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

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

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

1、使用方法

         ln –s  file1  linkfilename

2、軟連接的訪問

    image002.jpg

                   

 

原創文章,作者:秋季,如若轉載,請注明出處:http://www.www58058.com/53225

(0)
秋季秋季
上一篇 2016-10-25
下一篇 2016-10-25

相關推薦

  • linux查找命令locate、find

    本次博主來介紹下超實用的查找命令,沒有查不到,只有做不到。 直接上干貨:查找命令:locate和find,常用find,我們重點介紹find locate 通過查詢系統上預建的文件索引數據庫全盤查找所需文件,locate是透過update程序將硬盤中的所有檔案和目錄資料先建立一個索引數據庫,在執行loacte時直接找該索引,查詢速度會較快,索引的構建是在系統…

    2017-08-12
  • 詳解用戶,組,權限管理

    詳解用戶,組,權限管理 M21-陸東貴 測試環境:CentOS 7.2 內容介紹: 我們要使用操作系統進行工作,就需要人機交互操作,這時候計算機就需要創建用戶,通過用戶來實現操作,而且隨著用戶的增加需要給用戶分組,這時候就需要對文件進行權限管理。 需要使用的工具:       用戶相關工具:useradd; …

    Linux干貨 2016-10-25
  • linux計算機基礎理論

    1. 計算機的組成及其功能 從基本結構上來講,計算機可以分為五大部分: 運算器、存儲器、控制器、輸入設備、輸出設備。 運算器的功能:實現算術運算和邏輯運算(與控制器組成CPU) 存儲器功能:將輸入設備接受到的信息以二進制的數據形式存到存儲器中。 控制器的功能:將指令逐條從存儲中取出,經譯碼分析后向全機發出相應的操作控制信號作用于其他部件,使各部件有條不紊地協…

    Linux干貨 2018-03-04
  • 學而時習之

    1、 Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 文件管理類命令 ls, 查看:cat,more,less,tail,head,tac 復制:cp 移動:mv 刪除:rm 創建:touch 元數據屬性:stat 查看內容類型:file 文本編輯器:nano,vi Linux的文件類型       &…

    Linux干貨 2016-09-24
  • rsyslog日志記錄服務器

    rsyslog日志記錄服務器 部分思路總結摘自網絡http://xuding.blog.51cto.com/4890434/1737947 一、syslog系統 1.syslog:系統日志服務,統一日志管理 支持C/S架構:可通過UDP或TCP協議提供日志記錄服務;實現集中收集日志功能 (1)日志、事件 歷史事件日志,保存系統上過去一段時間的發生的事件 事件…

    Linux干貨 2016-11-07
  • bash的特性總結

    什么是bash:       shell作為用戶與計算機內核交互的接口,是用戶與計算機溝通的橋梁,而bash(borne again shell)是眾多shell里面最為流行一種,bash作為眾多shell里面的一種有著眾多的特性,掌握bash的眾多特性將會是我們今后學習linux必經之路。&nbs…

    Linux干貨 2015-10-27
欧美性久久久久