軟連結和硬連結差別
硬連結是檔案的副本拷貝,原檔案名和連接配接檔案名都指向相同的實體位址,使用的是相同的inode1,修改其中一個,與其連接配接的檔案同時被修改。如果删除其中任意一個其餘的檔案将不受影響
符号連接配接(軟連接配接):用ln -s指令建立檔案的符号連接配接符号連接配接是linux特殊檔案的一種,作為一個檔案,它的資料是它所連接配接的檔案的路徑名。類似windows下的快捷方式。當然删除這個連接配接,也不會影響到源檔案,但對連接配接檔案的使用、引用都是直接調用源檔案的。具體關系可以看下圖:
1:硬連結原檔案和新檔案的inode編号一緻。而軟連結不一樣。
2:對原檔案删除,會導緻軟連結不可用,而硬連結不受影響。
3:對原檔案的修改,軟、硬連結檔案内容也一樣的修改,因為都是指向同一個檔案内容的。

軟連結比較實用的一個功能是,一個正在使用的檔案不斷增大,但是目前分區空間不足,可以将該檔案移動到其他目錄下,軟連結到目前目錄,服務或應用認為檔案仍然在目前目錄下,繼續正常運作。起到了一個偷梁換柱的功能。軟連結也可以作用于目錄
[root@daixuan ~]# ln -s /root/12.txt /tmp/235.txt ln後有 -s 是軟連結
[root@daixuan ~]# !ls
ls -l /tmp
lrwxrwxrwx 1 root root 12 10月 25 00:25 235.txt -> /root/12.txt
[root@daixuan ~]# du -sh /root/1.txt;du -sh /tmp/1.txt
12K /root/1.txt 源資料12k
0 /tmp/1.txt 軟連結檔案0k
硬連結實際上是給一個檔案做了一個替身,讓他們都指向同一個inode(inode是每一個檔案或目錄的核心原資料,記錄着檔案名、屬性、磁盤位置等資訊,Linux的服務或者核心在使用檔案或者目錄,都是通過inode找到),說白了,就是給一個inode多做了一個替身,多做了一個克隆。
一個檔案對應一個inode,可以讓多個檔案對應同一個inode,但是不能讓多個inode對應一個檔案,修改其中一個檔案,另一個也會改變,但是删除其中一個檔案,另一個不受影響。
硬連結不能用于目錄,隻能用于檔案。
[root@daixuan ~]# ln /root/123.txt /tmp/daixuantest.txt ln後沒有 -s 是硬連結
[root@daixuan ~]# du -sh /root/123.txt ;du -sh /tmp/daixuantest.txt
4.0K /root/123.txt 大小相同
4.0K /tmp/daixuantest.txt
删除其中任何一個對另外一個沒有影響。
但是硬連結有一個限制,隻能在同一個分區下去操作。
[root@daixuan ~]# ln /tmp/234.txt /boot/1.txt
ln: 建立硬連結"/boot/1.txt" => "/tmp/234.txt": 無效的跨裝置連接配接