硬鏈接:
由於linux下的文件是通過索引節點(Inode)來識別文件,系統並不爲硬連接重新分配inode。每添加一個硬鏈接,文件的鏈接數就加1,但是硬連接本身還是有的原文件的inode值。如下:
[root@localhost tmp]# vi test
[root@localhost tmp]# ln test test-hd
[root@localhost tmp]# ls -il test*
1041459 -rw-r--r-- 2 root root 0 2012-02-13 20:46 test
1041459 -rw-r--r-- 2 root root 0 2012-02-13 20:46 test-hd
可以看到inode值都是1041459,連接數爲2。
限制:1)不可以在不同文件系統的文件間建立鏈接;2)只有超級用戶纔可以爲目錄創建硬鏈接。
符號鏈接(軟鏈接):
符號鏈接沒有任何文件系統的限制,任何用戶可以創建指向目錄的符號鏈接,其實質上就是建立一個獨立文件,這個文件會讓數據的讀取指向它連接的文件的內容,相當於windows系統中的快捷方式。而符號連接所佔用的空間大小就是所連接的文件名長度大小。如下:
[root@localhost tmp]# ln -s test test-so
[root@localhost tmp]# ls -il test*
1041459 -rw-r--r-- 2 root root 0 2012-02-13 20:46 test
1041459 -rw-r--r-- 2 root root 0 2012-02-13 20:46 test-hd
1041458 lrwxrwxrwx 1 root root 4 2012-02-13 20:52 test-so -> test