天天看點

軟連結和硬連結

軟連結和硬連結差別

​硬連結是檔案的副本拷貝,原檔案名和連接配接檔案名都指向相同的實體位址,使用的是相同的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": 無效的跨裝置連接配接

上一篇: Shell:變量