1. 程式人生 > 實用技巧 >軟連線和硬連結的區別

軟連線和硬連結的區別

硬連結

新建的檔案是已經存在的檔案的一個別名,他們相當於是同一個檔案,當原檔案刪除時,新建的檔案仍然可以使用,原始檔必須存在否則報錯。


軟連結(符號連結)

也稱為符號連結,新建的檔案以“路徑”的形式來表示另一個檔案,和Windows的快捷方式十分相似,新建的軟連結可以指向不存在的檔案而不會報錯。

區別

  1. 硬連結和原來的檔案沒有什麼區別,而且共享一個 inode 號(檔案在檔案系統上的唯一標識);而軟連結不共享 inode,也可以說是個特殊的 inode,所以和原來的 inode 有區別。
  2. 若原檔案刪除了,則該軟連線則不可以訪問,而硬連線則是可以的。
  3. 由於符號連結的特性,導致其可以跨越磁碟分割槽,但硬連結不具備這個特性.

建立軟連結

[root@tzPC tz]# ln -s test.txt sl_test.txt

可以看到兩個檔案大小不同

[root@tzPC ~]# ll *root.tar.gz
lrwxrwxrwx. 1 root root  11 Aug  1 15:33 ls_root.tar.gz -> root.tar.gz
-rw-r--r--. 1 root root 863 Jul 15 10:56 root.tar.gz

使用ls -i檢視inode編號,inode編號是核心用於標識檔案或者目錄唯一的數字

可以發現Indoe編號也不同

[root@tzPC ~]# ls
-i *root.tar.gz 33960583 ls_root.tar.gz 33594509 root.tar.gz

建立硬連結

[root@tzPC tz]# ln test.txt hl_test.txt

檢視inode跟大小都一樣

[root@tzPC tz]# ll -i
total 8
17411363 -rw-r--r--. 2 root root 22 Aug  1 15:41 hl_test.txt
17411363 -rw-r--r--. 2 root root 22 Aug  1 15:41 test.txt