軟連線與硬連線

2021-05-22 01:42:07 字數 1539 閱讀 9945

要弄清楚2者的區別,首先得明白linux系統中檔案是如何儲存的.在linux中儲存乙個檔案由3部分組成:

檔名       inode         block(資料塊)

關於inode:

block用來儲存資料.而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小,歸屬的使用者組,讀寫許可權等.inode為每個檔案進行資訊索引,所以就有了inode的數值.

在來談談到底什麼是硬連線什麼是軟連線:

先看下面乙個列子:

建立連線檔案之前

lvbook@lvbook-desktop:/home/chendan/onetime/3$ ls -il

total 0

149945 -rw-r--r-- 1 root root 0 2010-03-23 23:54 test1.c

149947 -rw-r--r-- 1 root root 0 2010-03-23 23:55 test2.c

建立乙個硬連線

lvbook@lvbook-desktop:/home/chendan/onetime/3$ sudo ln test1.c hlink

149945 -rw-r--r-- 2 root root 0 2010-03-23 23:54 hlink

149945 -rw-r--r-- 2 root root 0 2010-03-23 23:54 test1.c

149947 -rw-r--r-- 1 root root 0 2010-03-23 23:55 test2.c

可以看到test1.c連線數+1,並且可以看出hlink與test1.c除了檔名不同外,其餘都是完全相同的.它們的索引節點相同,讀寫許可權相同.由此我們可以這樣理解,所謂硬連線就是原檔案的乙個轉殖體.

建立乙個軟連線

lvbook@lvbook-desktop:/home/chendan/onetime/3$ sudo ln -s test2.c slink

lvbook@lvbook-desktop:/home/chendan/onetime/3$ ls -il

149945 -rw-r--r-- 2 root root 0 2010-03-23 23:54 hlink

149944 lrwxrwxrwx 1 root root 7 2010-03-23 23:57 slink -> test2.c

149945 -rw-r--r-- 2 root root 0 2010-03-23 23:54 test1.c

149947 -rw-r--r-- 1 root root 0 2010-03-23 23:55 test2.c

可以看到test2.c的連線數沒有變,它們的索引節點不同,讀寫許可權不同.我們可以這樣理解,當我們建立乙個連線檔案時,系統為我們的連線檔案從新分配了一片小的記憶體用來存放我們的連線檔案的索引,檔名,資料塊.而其中的資料塊儲存的是連線源的檔名.

大家可以參考:

連線有軟連線(symbolic link)和硬連線(hard link)之分,

Linux 軟連線與硬連線

linux 軟連線與硬連線 2008 10 31 15 44 13 標籤 linux 職場休閒 軟連線與硬連線 linux 軟連線與硬連線 對於乙個檔案來說,有唯一的索引接點與之對應,而對於乙個索引接點號,卻可以有多個檔名與之對應。因此,在磁碟上的同乙個檔案可以通過不同的路徑去訪問該檔案。注意在li...

Linux軟連線與硬連線

linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結,ln s命令產生軟連線。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配...

硬連線與軟連線檔案

linux中有兩種連線檔案,軟連線 符號連線 和硬連線,軟連線類似於windows下的快捷方式,硬連線通過檔案系統的inode連線來產生新檔名,而不是產生新檔案。inode 記錄檔案屬性,乙個檔案乙個inode。inode相當於檔案id,訪問檔案時,檔案系統需找到inode編號之後才允許您訪問。1 ...