1. 程式人生 > >LINUX 硬連結與軟連結的區別

LINUX 硬連結與軟連結的區別

對於一個檔案來說,有唯一的索引接點(inode)與之對應,而對於一個索引接點號,卻可以有多個檔名與之對應。因此,在磁碟上的同一個檔案可以通過不同的路徑去訪問該檔案。注意在Linux下是一切皆檔案的啊,資料夾、新加的硬碟 ...都可以看著檔案來處理的啊。
    連線有軟連線和硬連線(hard link)之分的,軟連線(symbolic link)又叫符號連線。符號連線相當於Windows 下的快捷方式。
*************************** 不可以對  資料夾/目錄  建立硬連線的,我們通常用的還是軟連線比較多。    
    
eg:
    ln -s source dist        # 建立軟連線
    ln source dist            # 建立硬連線
 
    它們到底有什麼區別呢?上次也好好的看了,好象同文件系統的結構有一定的關係,沒怎麼太詳細的研究下次看明白了再加上。

----------------------
    軟連結實際上只是一段文字,裡面包含著它所指向的檔案的名字,系統看到軟連結後自動跳到對應的檔案位置處進行處理;相反,硬連結為檔案開設一個新的目錄項,硬連結與檔案原有的名字是平權的,在Linux看來它們是等價的。由於這個原因,硬連結不能連線兩個不同檔案系統上的檔案。
 
軟連線與windows下的快捷方式類似

至於硬連線,舉個例子說吧,你把dir1/file1硬連線到dir2/file2, 就是在dir2下建立一個dir1/file1的映象檔案file2,它與file1是佔用一樣大的空間的,並且改動兩者中的一個,另一個也會發生同樣的改動.

軟連線和硬連線可以這樣理解:
硬連線就像一個檔案有多個檔名,
軟連線就是產生一個新檔案(這個檔案內容,實際上就是記當要連結原檔案路徑的資訊),這個檔案指向另一個檔案的位置,
硬連線必須在同一檔案系統中,而軟連線可以跨檔案系統

硬連線 :原始檔名和連結檔名都指向相同的實體地址,目錄不能夠有硬連線,檔案在磁碟中只有一個複製,可以節省硬碟空間,由於刪除檔案要在同一個索引節點屬於唯一的連線時才能成功,因此可以防止不必要的誤刪除軟連線(符號連線)用ln -s命令建立檔案的符號連線,符號連線是linux特殊檔案的一種,作為一個檔案,它的資料是它所連線的檔案的路徑名,類似於硬體方式,******可以刪除原始檔案 而連線檔案仍然存在。********

 
本文試圖清晰徹底的解釋軟連結和硬連結檔案的區別
 一 連結檔案
    連結有兩種方式,軟連結和硬連結。
  1 軟連結檔案
  軟連結又叫符號連結,這個檔案包含了另一個檔案的路徑名。可以是任意檔案或目錄,可以連結不同檔案系統的檔案。
    **********連結檔案甚至可以連結不存在的檔案,這就產生一般稱之為"斷鏈"的問題(或曰“現象"),連結檔案甚至可以迴圈連結自己。類似於程式語言中的遞迴。
  用ln -s 命令可以生成一個軟連線,如下:
  [

[email protected] test]# ln -s  source_file softlink_file
  在對符號檔案進行讀或寫操作的時候,系統會自動把該操作轉換為對原始檔的操作,但刪除連結檔案時,系統僅僅刪除連結檔案,而不刪除原始檔本身。
  2 硬連結檔案
  info ln 命令告訴您,硬連結是已存在檔案的另一個名字(A "hard link" is another name for an existing file),這多少有些令人困惑。硬連線的命令是
  ln -d existfile newfile
  硬連結檔案有兩個限制
  1)、不允許給目錄建立硬連結;
  2)、只有在同一檔案系統中的檔案之間才能建立硬連結。
  ***********對硬連結檔案進行讀寫和刪除操作時候,結果和軟連結相同。但如果我們刪除硬連結檔案的原始檔,硬連結檔案仍然存在,而且保留了願有的內容。
    ***********這時,系統就“忘記”了它曾經是硬連結檔案。而把他當成一個普通檔案。
二  兩者之間的區別
    硬連線指通過索引節點來進行的連線。在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點號(Inode Number)。
    在Linux中,多個檔名指向同一索引節點是存在的。一般這種連線就是硬連線。*******硬連線的作用是允許一個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要
    檔案,以防止“誤刪”的功能。其原因如上所述,因為對應該目錄的索引節點有一個以上的連線。只刪除一個連線並不影響索引節點本身和其它的連線,只有當最後一個
    連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案才會被真正刪除。
    軟連結檔案有點類似於Windows的快捷方式。它實際上是特殊檔案的一種。在符號連線中,檔案實際上是一個文字檔案,其中包含的有另一檔案的位置資訊。
三  個人體會
    軟連結是另一個檔案,作用可以理解為一個指標,******作用在這個檔案上的操作除了刪除都直接轉向實際指向檔案,由於是一個真實的檔案所以佔用磁碟空間
    硬連結可以認為不是一個檔案,它只是實際檔案的一個別名,它的作用是防止真實檔案被誤操作,給一個檔案建立硬連結後,他們互為別名,刪除其中任意一個,
    這樣用RM命令只會刪除該別名,實際檔案並不會被刪除。只有連結數為0時,才會刪除原始檔案。

相關推薦

LINUX 連結連結區別

對於一個檔案來說,有唯一的索引接點(inode)與之對應,而對於一個索引接點號,卻可以有多個檔名與之對應。因此,在磁碟上的同一個檔案可以通過不同的路徑去訪問該檔案。注意在Linux下是一切皆檔案的啊,資料夾、新加的硬碟 ...都可以看著檔案來處理的啊。     連線有軟連線和

linux連結連結

Linux 系統中有軟連結和硬連結兩種特殊的“檔案”。 軟連結可以看作是Windows中的快捷方式,可以讓你快速連結到目標檔案或目錄。 硬連結則透過檔案系統的inode來產生新檔名,而不是產生新檔案。 建立方法都很簡單: 軟連結(符號連結) ln -s  

linux連結連結 (ln)

1.Linux連結概念Linux連結分兩種,一種被稱為硬連結(Hard Link),另一種被稱為符號連結(Symbolic Link)。預設情況下,ln命令產生硬連結。 【硬連線】硬連線指通過索引節點來進行連線。在Linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配一個編號,稱為索引節點

Linux連結連結

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

Linux學習--理解連結連結

Linux 的檔案與曼目錄 現代作業系統為解決資訊能獨立於程序之外被長期儲存引入了檔案,檔案作為程序建立資訊的邏輯單元可被多個程序併發使用。在Unix系統中,作業系統為磁碟上的文字與影象,滑鼠與鍵盤燈輸入裝置及網路互動等 I/O 操作設計了一組通用API,使他們被處理時均可統一使用位元組流方式。換言之,Un

Linux 連結連結

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

檔案系統-連結連結區別

硬連結:若一個 inode 號對應多個檔名,則稱這些檔案為硬連結。換言之,硬連結就是同一個檔案使用了多個別名(見 圖 2.hard link 就是 file 的一個別名,他們有共同的 inode)。硬連結可由命令 link 或 ln 建立。 軟連線:若檔案

Linux連結連結

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

linux 下的連結連結

在Linux系統中,核心為每一個新建立的檔案分配一個Inode(索引結點),每個檔案都有一個惟一的inode號。檔案屬性儲存在索引結點裡,在訪問檔案時,索引結點被複制到記憶體,從而實現檔案的快速訪問。 Linux連結分兩種,一種被稱為硬連結(Hard Link

快速理解連結連結

什麼是連結?連結簡單說實際上是一種檔案共享的方式,是 POSIX 中的概念,主流檔案系統都支援連結檔案。它是用來幹什麼的?你可以將連結簡單地理解為 Windows 中常見的快捷方式(或是 OS X 中的替身),Linux 中常用它來解決一些庫版本的問題,通常也會將一些目錄層次較深的檔案連結到一個更易訪問的目錄

linux學習——連結連結複製的區別

1、語法: 硬連結:ln source source1 軟連結:ln -s source source1 複製:cp source source1 2、含義: 硬連結:硬連結實際上是為檔案建一個別名,連結檔案和原檔案實際上是同一個檔案。可以通過ls

linux連結連結區別

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

Linux 連結連結小結

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

連結連線

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

連結連結區別

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

連結連結區別和作用

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

Unix中連結連結區別

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

Linux連結連結及inode詳解

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

linux連結連結以及inode

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

Linux連結連結

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