Linux的軟鏈接和硬鏈接區別

在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

(0)
maomaosan2008maomaosan2008
上一篇 2016-10-20
下一篇 2016-10-20

相關推薦

  • linux下find(文件查找)命令的詳解

    文件查找命令locate和find詳解 locate 配合數據庫緩存,快速查看文件位置,非實時查找( 數據庫查找) find 實際搜尋硬盤查詢文件名稱 ,實時查找 locate簡介 locate命令其實是find -name的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數據庫/var/lib/locat…

    Linux干貨 2016-08-18
  • 畢業即高薪只是別人家的好事嗎?

    1 畢業即高薪?運氣?夢想?還是噓頭?  同學們,你還在擔心畢業后不好找工作嗎,畢業即高薪只是別人家的好事嗎?馬哥linux又一名在校生學員畢業即20w+高薪名企,你還在等什么呢? 真的只是夢想么?還是只存在于別人家的公司? 越來越多的在校大學生憑著強烈的上進心踴躍的加入了馬哥linux的學習陣營,這名研究生同學在研究生畢業的同時也從馬哥linux…

    2015-09-06
  • Bash基礎命令操作

    Bash基礎命令操作

    2018-03-18
  • 壓縮與解壓

        compress 命令使用“Lempress-Ziv”編碼壓縮數據文件。compress是個歷史悠久的壓縮程序,文件經它壓縮后,其名稱后面會多出”.Z”的擴展名。當要解壓縮時,可執         &nbsp…

    2017-08-14
  • 96-Mariadb-1

        一. MariaDB or MySQL基礎知識                   層次模型 –> 網狀模型 –> …

    2016-11-18
  • 踩踩Linux命令中的那些坑

    有時候面對命令的執行和條件的判斷,可能會遇到莫名奇妙的原因,可能是人為錯誤導致,也可能是命令本身的問題。

    Linux干貨 2017-11-23
欧美性久久久久