1. 程式人生 > >Linux下的硬連結和軟連線

Linux下的硬連結和軟連線

      首先要弄清楚,在Linux系統中,核心為每一個新建立的檔案分配一個Inode(索引結點),每個檔案都有一個惟一的inode號。檔案屬性儲存在索引結點裡,在訪問檔案時,索引結點被複制到記憶體在,從而實現檔案的快速訪問。
  連結是一種在共享檔案和訪問它的使用者的若干目錄項之間建立聯絡的一種方法。Linux中包括兩種連結:硬連結(Hard Link)和軟連結(Soft Link),軟連結又稱為符號連結(Symbolic link)。

總之:

        硬連結說白了是一個指標,指向檔案索引節點系統並不為它重新分配inode

        建立軟連結就是建立了一個新檔案當訪問連結檔案時,系統就會發現他是個連結檔案,它讀取連結檔案找到真正要訪問的檔案。



通過實際操作來辨別softlink和hardlink的區別:

首先我們在/home/下建立了一個檔案source.file

[[email protected] home]# ll
total 8
-rw-r--r--  1 root root 26 Dec  6 12:07 source.file

接著分別建立兩種連線:
[[email protected] home]# ln source.file hardlink.file        ----------------- hardlink
[[email protected] home]# ln -s source.file softlink.file     ----------------- softlink
建好連線檔案之後,我們用ll命令檢視一下有什麼不一樣的地方:

[[email protected] home]# ll
total 20
-rw-r--r--  2 root root 26 Dec  6 12:07 hardlink.file                          ----------------- hardlink
lrwxrwxrwx  1 root root 11 Dec  6 12:08 softlink.file -> source.file     ----------------- softlink
-rw-r--r--  2 root root 26 Dec  6 12:07 source.file
我們可以看到軟連線和硬連線在四個地方不同:

1,檔案類別上,hardlink顯示的是正常的普通檔案,而softlink生成的檔案顯示的是一個連線檔案,並且操作許可權也不一樣;

2,上面輸出的第二列也就是連線數不一樣;

3,檔案的大小不一樣;hardlink生成的檔案和原檔案一模一樣,而softlink只是一個符號連線。

4,softlink生成的檔案有個指向-〉原檔案的標誌

接著我們用ll  -i命令看一下,-i能顯示出檔案的inode號

[[email protected] home]# ll -i
total 20
652046 -rw-r--r--  2 root root 26 Dec  6 12:07 hardlink.file
651589 lrwxrwxrwx  1 root root 11 Dec  6 12:08 softlink.file -> source.file
652046 -rw-r--r--  2 root root 26 Dec  6 12:07 source.file
可以看到hardlink生成的檔案和原檔案的inode一樣,而連線數是2了;硬連線指向的是節點(inode),而軟連線指向的是路徑(path);所以當刪除原檔案,hardlink.file能正常使用而softlink.file則提示出錯

總結:

(1)由於不同的分割槽會有相同的inode及硬連線的特殊性和檔案系統的可解除安裝性,導致硬連線不容許跨檔案系統(分割槽)!而 soft link 具有完整的 pathname,所以他可以跨越不同檔案系統。

(2)硬連線不會建產新的inode,硬連線不管有多少個,都指向的是同一個inode節點,只是新建一個hard link會把結點連線數增加,只要結點的連線數不是0,檔案就一直存在,不管你刪除 的是原始檔還是連線的檔案。只要有一個存在,檔案就存在(其實也不分什麼原始檔連線檔案的,因為他們指向都是同一個 inode節點)。當你修改原始檔或者連線檔案任何一個的時候,其他的檔案都會做同步的修改 。軟連結不直接使用inode節點號作為檔案指標,而是使用檔案路徑名作為指標。所以刪除連線檔案對原始檔無影響,但是刪除原始檔,連線檔案就會找不到要指向的檔案。軟連結有自己的inode,並在磁碟上有一小片空間存放路徑名.

(3)軟連線可以對一個不存在的檔名進行連線。

(4)軟連線可以對目錄進行連線。

     ln -s source dist        # 建立軟連線 
    ln source dist           # 建立硬連線

建立軟連線不寫絕對路徑,那麼原始檔和目標檔案必須在同一個目錄下才能找到,否則有錯誤

軟連線:windows下快捷方式
硬連結:同一檔案的備份檔案
多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。硬連線的作用是允
許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止“誤刪”的功能。
硬連結檔案有兩個限制
1)、不允許給目錄建立硬連結;
2)、只有在同一檔案系統中的檔案之間才能建立連結。


相關推薦

Linux連結連線的區別以及建立

硬連結:已存在的檔案的一個別名,當原始檔刪除時仍可使用,且inode可共享,僅檔名不同的檔案,硬連結的建立會使連結數加1。 軟連線:符號連結,也就是快捷方式,不共享inode,有自己的inode,可對不存在的檔案建立軟連結,建立時連結數不加一,當原始檔刪除時,則

Linux連結連線

      首先要弄清楚,在Linux系統中,核心為每一個新建立的檔案分配一個Inode(索引結點),每個檔案都有一個惟一的inode號。檔案屬性儲存在索引結點裡,在訪問檔案時,索引結點被複制到記憶體在,從而實現檔案的快速訪問。   連結是一種在共享檔案和訪問它的使用者的

Linux系統的連結連線

一. 硬連結 硬連結是為檔案開設一個新的目錄項,可以看做是為原檔案的備份。硬連結與檔案原有的名字是平權的,在Linux看來它們是等價的。由於這個原因,硬連結不能連線兩個不同檔案系統上的檔案。 硬連線不管有多少個,都指向的是同一個I節點,會把 結點連線數增加,只要

Linux連結連線的理解

    為了解決資訊能獨立於程序之外長期被儲存引入了檔案,檔案能同時被多個程序使用。對於所有類Unix系統,除了程序以外全都為檔案,而Linux在此基礎上引進了目錄的概念即資料夾,這就使得Linux的檔案可以被分類管理,同時是的Linux的檔案系統形成一個層級結構的目錄樹。 

Linux 連結連結小結

每個linux儲存裝置的分割槽被格式化成檔案系統後, 一般生成兩個部分: 第一部分是inode;inode是用來儲存資料屬性資訊的; 第二部分是block;block是用來儲存實際資料的 例如照片 視訊; inode具有指向檔案實體的功能,但是inode唯獨不包含檔名 檔名儲存在它上一級目錄的block中。

CentOS建立連結連結

ln -s f1 f3       #建立f1的一個符號連線檔案f3 1.Linux連結概念 Linux連結分兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。預設情況下,ln命令產生硬連

linux連結連結的區別

1.原理上: 硬連結(hard link):A是B的硬連結(A和B都是檔名),則A的目錄項中的inode節點號與B的目錄項中的inode節點號相同,即一個inode節點對應兩個不同的檔名,兩個檔名指向同一個檔案,A和B對檔案系統來說是完全平等的。如果刪除了其中一個,對另外一個沒有影響。每增加一個

linux連結連結以及inode

1、inode a、inode是index node,中文為索引節點。 b、inode包含以下內容: * 檔案的位元組數   * 檔案擁有者的User ID   * 檔案的Group ID   * 檔案的讀、寫、執行許可權   * 檔案的時間戳,共有三個:ctim

Linux連結連結

一、硬連結         硬連結有稱實際連結,是指通過索引節點來進行連結,在Linux中,所有節點都會有一個編號,稱為inode,多個檔名指向同一個索引節點是被允許的,這種連結被稱為硬連結。硬連結的作用是允許一個檔案擁有多個有效的檔名。這樣使用者就可以簡歷硬連結指向同一個

共享檔案:連結連結

  檔案共享使多個使用者(程序)共享同一份檔案,系統中只需保留該檔案的一份副本。如果系統不能提供共享功能,那麼每個需要該檔案的使用者都要有各自的副本,會造成對儲存空間的極大浪費。隨著計算機技術的發展,檔案共享的範圍已由單機系統發展到多機系統,進而通過網路擴充套件到全球。這些檔案的分享是

Linux連結連結

硬連線: 若一個 inode 號對應多個檔名,則稱這些檔案為硬連結。換言之,硬連結就是同一個檔案使用了多個別名(見 圖 2.hard link 就是 file 的一個別名,他們有共同的 inode),建立硬連結: [email protected]:~# ln oldfile ha

連結連線

硬連結:簡單說,檔名就是檔案的硬連結,硬連結就是給檔案起了個別名,對應的 inode 與原檔案一樣 軟連結:簡單說,類似於快捷方式,它有自己單獨的 inode,指向了被連結的檔案(跟路徑關聯) 畫個圖瞭解下: 實驗驗證: 建立一個檔案,text.txt # c

作業系統知識點總結(十三)共享檔案(連結連結

檔案共享使多個使用者(程序)共享同一份檔案,系統中只需保留該檔案的一份副本。如果系統不能提供共享功能,那麼每個需要該檔案的使用者都要有各自的副本,會造成對儲存空間的極大浪費。隨著計算機技術的發展,檔案共享的範圍已由單機系統發展到多機系統,進而通過網路擴充套件到全球。這些檔案的分享是通過分散式檔案

連結連結的區別

1、硬連結和軟連線概念 硬連線指通過索引節點來進行連線。在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個檔名指向同一索引節點是存在的。比如:A是B的硬連結(A和B都是檔名)

連結連結的區別作用

首先說說目錄的本質和節點的概念: 在linux系統下一切皆檔案,目錄它也是一個檔案,只不過在它裡面儲存的是 一張表的檔案。 而節點就類似我們c語言中學過的陣列的下標,我們可以把每個檔案都看成是 陣列中的元素,而知道了節點號,就可以找到實質的檔案內容了。

ln命令(連結連結

linux 下的硬連結、軟連結 軟連結軟連線主要目的是升級之後向前相容。軟連結相當於快捷方式。當我刪除原始檔之後,後面的檔案就找不到前面的檔案了。軟連線相當於:a->b;b->inode.例子:軟連線的建立ln -s libiptc.so.0.0.0 libip6

Unix中連結連結的區別

Unix中,核心會給每一個新建檔案分配一個索引節點inode,每個檔案都有一個唯一確定的索引節點號,文 索引節點是一個結構,它包含了一個檔案的長度、建立及修改時間、許可權、所屬關係、磁碟中的位置等資訊。一個檔案系統維護了一個索引節點的陣列,每個檔案或目錄都與索引節點陣列中的

Linux連結連結及inode詳解

inode   檔案儲存在硬碟上,硬碟的最小儲存單位叫做“扇區”(Sector)。每個扇區儲存512位元組(相當於0.5KB)。   作業系統讀取硬碟的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個”塊”(block)

連結連結用法及總結

轉載至:http://www.cnblogs.com/Peter2014/p/7594504.html硬連結:具有相同inode節點號的多個檔案互為硬連結檔案;刪除硬連結檔案或者刪除原始檔任意之一,檔案實體並未被刪除;只有刪除了原始檔和所有對應的硬連結檔案,檔案實體才會被刪除

Linux連結連結

      Linux系統中的檔案包括檔名和資料,其中資料分為使用者資料和元資料。使用者資料,即檔案資料塊存放著使用者的真實資料;元資料,存放著對檔案的一些描述資訊(檔案大小、建立時間、所有者、inode等等),是作業系統幫我們記錄的。其中inode是檔案索引號