在Linux中,為了方便文件的使用,引入了兩種鏈接,即為軟鏈接和硬鏈接。
那么什么是硬鏈接,什么又是軟鏈接呢。
簡單來說,硬鏈接就是一個inode號對應多個文件名,也就是說一個文件使用了多個別名。
首先先來看看我們要創建硬連接的文件信息:
[root@localhost ~]# ll -i /root //查看原文件的屬性信息 |
201386466 -rw-r–r– 1 root root 46 Oct 20 19:18 testlink |
接下來我們來針對testlink文件來創建硬連接文件:
[root@localhost ~]# ln testlink testlink1 //創建名為testlink1的硬鏈接文件 |
[root@localhost ~]# ll -i //比較兩個文件的信息 |
201386466 -rw-r–r– 2 root root 46 Oct 20 19:18 testlink |
201386466 -rw-r–r– 2 root root 46 Oct 20 19:18 testlink1 |
從上面可以看出,硬鏈接數的地方變成了2,其他無論是權限、時間戳、大小,甚至inode號都相同,我們在把硬鏈接文件刪除看看:
[root@localhost ~]# rm -rf testlink //刪除硬鏈接文件 |
[root@localhost ~]# ll -i //查看原文件信息 |
201386466 -rw-r–r– 1 root root 46 Oct 20 19:18 testlink |
硬鏈接數有變成了1!可見刪除鏈接文件后鏈接數遞減;
剛才我們只針對文件創建了硬鏈接文件,接下來我們對目錄創建個硬鏈接試試看。
[root@localhost ~]# ll -i //查看testlink目錄的屬性信息 |
67111809 drwxr-xr-x 2 root root 6 Oct 20 20:05 testlink |
[root@localhost ~]# ln testlink testlink1 //對比兩個文件的信息 |
ln: ‘testlink’: hard link not allowed for directory //報錯了?。。?/span> |
由上述可見:
硬鏈接文件實際就是對原數據起的一個別名,它們具有相同的inode即date block;
創建的硬鏈接會增加其鏈接數;
刪除硬鏈接后鏈接數相應減少,但文件的其他信息不影響;
硬鏈接只針對文件,對目錄無法創建硬鏈接。
接下來說說軟鏈接:
軟鏈接又稱符號鏈接,不同于硬鏈接的創建方法,軟鏈接創建是需加-s選項,接下來我們試著創建一個軟鏈接:
[root@localhost tmp]# ll -id /root/testlink/ //查看原目錄信息 |
可見,軟鏈接可對目錄創建,對testlink目錄創建軟鏈接前后,自身的屬性信息比沒有變化,而創建后的軟鏈接文件無論是inode號、權限、時間戳,還是大小均改變,類似于win下的快捷方式
[root@localhost ~]# rm -rf /root/testlink //刪除原鏈接目錄 |
[root@localhost ~]# ll -i /tmp/testlink2 |
24206 lrwxrwxrwx 1 root root 17 Oct 13 16:27 /tmp/testlink2 -> ../root/testlink/ //鏈接文件報錯 |
由此軟鏈接不能不能刪除原鏈接,否則由于映射不到原文件而報錯,此類似于win中得快捷方式
由上
軟鏈接不僅對文件可創建軟鏈接,對目錄同樣有效
刪除原始文件后,軟鏈接失效(類似win下快捷方式)
軟鏈接的編號為自己的編號,與原文件無關
此外,在日常生產中,盡量以相對路徑的方式來創建軟鏈接,這樣在整個目錄拷貝時,不會因為絕對路徑的改變而對程序產生影響。
原創文章,作者:maomaosan2008,如若轉載,請注明出處:http://www.www58058.com/53187