Linux中的硬鏈結與軟鏈結

2021-09-08 03:31:05 字數 1896 閱讀 1280

inode: ext檔案系統的每個目錄與檔案都有乙個inode與之對應,inode裡儲存了檔案和目錄實際儲存內容的data block的號碼,簡而言之就是inode是乙個檔案索引

例如我們執行以下shell

alexis@idiotic-youth:~/tests$ ls -li

total

0524759-rw-rw-r--1alexis alexis 0 nov 7

17:07

test

alexis@idiotic-youth:~/tests$ ln

test test2

alexis@idiotic-youth:~/tests$ ls -li

total

0524759-rw-rw-r--2alexis alexis 0 nov 7

17:07

test

524759-rw-rw-r--2alexis alexis 0 nov 7

17:07

test2

alexis@idiotic-youth:~/tests$ rm

test2

alexis@idiotic-youth:~/tests$ ls -li

total

0524759-rw-rw-r--1alexis alexis 0 nov 7

17:07

test

alexis@idiotic-youth:~/tests$

請注意看粗體字部分,當我們建立hard link後,test和test2的inode是一樣的,這代表他們使用相同的data block,並且連線數加1,說明這個inode一共有兩個檔案指向它。刪除test2以後,test不受影響,inode連線數減1。其原理如下圖

當刪除test2以後

參見如下示例

alexis@idiotic-youth:~/tests$ ln -s test test2

alexis@idiotic-youth:~/tests$ ls -li

total

0524759 -rw-rw-r-- 1 alexis alexis 0 nov 7

17:07

test

560971 lrwxrwxrwx 1 alexis alexis 4 nov 7

19:12 test2 ->test

alexis@idiotic-youth:~/tests$ rm

test

alexis@idiotic-youth:~/tests$ ls -li

total

0560971 lrwxrwxrwx 1 alexis alexis 4 nov 7

19:12 test2 -> test

建立軟鏈結並不會增加原始檔的連線數,當刪除原始檔後,鏈結檔案會用特殊顏色標誌出來,其原理如下圖

當原始檔test被刪除以後,則變成下圖,以至於test2無法開啟

linux硬鏈結與軟鏈結

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

Linux 硬鏈結與軟鏈結

原貼 2007 08 05 10 19 49 linux硬鏈結與軟鏈結 2006 12 01 15 03 首先要弄清楚,在linux系統中,核心為每乙個新建立的檔案分配乙個inode 索引結點 每個檔案都有乙個惟一的inode號。檔案屬性儲存在索引結點裡,在訪問檔案時,索引結點被複製到內存在,從而實...

linux硬鏈結與軟鏈結

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