以前一直不明白unix系統當中硬連線與軟連線的區別,閒暇無聊時候想鍛鍊看些英文的計算機資料,忽然有點心得體會。
要講清楚這兩個的區別,首先要明白unix系統當中檔案的儲存。unix檔案當中檔案的儲存可以分為三部分:
1、 檔名 file name;
2、 我們稱之為inode, 裡面儲存了此檔案的屬性,包括檔案大小、所有者、以及訪問許可權等等。
3、 資料塊 data;
以乙個例子講:
目標檔名稱 /opt/public.c 要建立的軟連線的名稱為a , 建立的硬連線的名稱為b。
此時/opt/public.c 檔案的儲存為: 1、檔名稱 public.c 2、inode 為1233
3、資料塊為檔案的資料塊。
那此時軟連線a的儲存為: 1、 檔名稱:a 2、inode為 1423(系統分配值) 3、資料塊資料為:/opt/public.c
而硬連線b的儲存為: 1、 檔名稱:b 2、inode為1233 3、資料塊為檔案的資料塊。
從上面我們知道軟連線有自己的inode 和資料塊,他的資料塊當中的內容為所要連線的檔案的絕對或者相對路徑。而硬連線和他所要連線的檔案共有同乙個inode 和資料塊。
這兩個連線不同之處主要體現在訪問許可權上,建立的軟連線的訪問許可權是777,但是這不是他的實際訪問許可權,他的實際訪問許可權還是以它所連線的檔案的訪問許可權為準。而硬連線建立的時候的訪問許可權就是它所連線的訪問許可權,因為他們共用乙個inode,而inode當中所儲存的就是此檔案的訪問許可權。
需要補充的是,軟連線可以跨檔案系統,而硬連線不能跨檔案系統。
看乙個檔案或者目錄的硬連線數量可用ls -al
drwxr-xr-x 10 jlivr other 512 jun 9 16:23 .
drwxrwxr-x 13 root sys 512 apr 11 15:17 ..
-rw------- 1 jlivr other 3442 jun 9 16:21 .bash_history
-rw-r--r-- 1 jlivr other 1039 may 11 17:04 .profile
drwxr-xr-x 2 jlivr other 512 apr 26 15:58 bin
drwxr-xr-x 3 jlivr other 1024 apr 26 15:51 inc
drwxr-xr-x 2 jlivr other 512 apr 26 15:51 lib
drwxr-xr-x 8 jlivr other 512 jun 6 17:18 mex
drwxr-xr-x 2 jlivr other 1024 may 20 12:21 new_voice
drwxr-xr-x 2 jlivr other 512 may 23 01:06 obj
訪問許可權與檔案所有者當中有個數字, 代表的就是此檔案或者目錄的硬連線數量。
軟連線與硬連線
要弄清楚2者的區別,首先得明白linux系統中檔案是如何儲存的.在linux中儲存乙個檔案由3部分組成 檔名 inode block 資料塊 關於inode block用來儲存資料.而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小,歸屬的使用者組,讀寫許可權等.inode為每個檔案進...
Linux 軟連線與硬連線
linux 軟連線與硬連線 2008 10 31 15 44 13 標籤 linux 職場休閒 軟連線與硬連線 linux 軟連線與硬連線 對於乙個檔案來說,有唯一的索引接點與之對應,而對於乙個索引接點號,卻可以有多個檔名與之對應。因此,在磁碟上的同乙個檔案可以通過不同的路徑去訪問該檔案。注意在li...
Linux軟連線與硬連線
linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結,ln s命令產生軟連線。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配...