linux的軟鏈接和硬鏈接

1.Linux鏈接概念

Linux鏈接分兩種,一種被稱爲硬鏈接(Hard Link),另一種被稱爲符號鏈接(Symbolic Link)或軟鏈接。

硬鏈接

硬鏈接指通過索引節點來進行鏈接。在Linux的文件系統中,保存在磁盤分區                                    中的文件不管是什麼類型都給它分配一個編號,稱爲索引節點號(Inode Index)。在Linux中,如果多個文件名指向同一索引節點一般這種鏈接就是硬鏈接。建立硬鏈接時,在另外的目錄或本目錄中增加目標文件的一個目錄項,這樣,一個文件就登記在多個目錄中創建硬鏈接後,己經存在的文件的I節點號(Inode)會被多個目錄文件項使用。一個文件的硬鏈接數可以在目錄的長列表格式的第二列中看到,無額外鏈接的文件的鏈接數爲l。 在默認情況下,ln命令創建硬鏈接。ln命令會增加鏈接數,rm命令會減少鏈接數。一個文件除非鏈接數爲0,否則不會從文件系統中被物理地刪除。

軟鏈接

另外一種鏈接稱之爲符號鏈接(Symbolic Link),或軟鏈接。軟鏈接文件類似於Windows的快捷方式。它實際上是一個特殊的文件。在符號鏈接中,文件實際上是一個文本文件,事實上,它只是一個文本文件,其中包含它提供鏈接的另一個文件的路徑名另一個文件是實際包含所有數據的文件。所有讀、寫文件內容的命令被用於符號鏈接時,將沿着鏈接方向前進來訪問實際的文件。

2. 語法和選項:

         語法:ln  選項參數:

         常用選項:

         -s 建立軟鏈接(符號鏈接)

         -v 執行過程可見

         -f 強行建立文件或目錄的鏈接,不論文件或目錄是否存在

         注意:默認建立軟鏈接

 

3. 具體使用實例

[root@centos7testdir]# ls   //在測試目錄下面建立a.txt dir目錄

a.txt  dir

 [root@centos7 testdir]# ln a.txt ./dir/a.ln  //a.txtdir中建立硬鏈接

[root@centos7testdir]# ll ./dir/a.ln  //查看硬鏈接

-rw-r--r--. 2 rootroot 15 Jul 29 21:47 ./dir/a.ln 

[root@centos7testdir]# ll a.txt   //此時查看到文件的鏈接數變成2,建立硬鏈接成功

-rw-r--r--. 2 rootroot 15 Jul 29 21:47 a.txt

[root@centos7testdir]# ls

a.txt  dir

[root@centos7testdir]# rm ./dir/a.ln  -f  //刪除硬鏈接,在dir下建立相對路徑的軟鏈接

[root@centos7testdir]# ln -s ../a.txt ./dir/a.sln

[root@centos7testdir]# ll ./dir/a.sln

lrwxrwxrwx. 1 rootroot 8 Jul 30 13:57 ./dir/a.sln -> ../a.txt

[root@centos7testdir]# mkdir dir2

[root@centos7testdir]# ln -s /testdir/a.txt /testdir/dir2/a.sln //建立絕對路徑的軟鏈接

[root@centos7testdir]# ll /testdir/dir2/a.sln

lrwxrwxrwx. 1 rootroot 14 Jul 30 13:59 /testdir/dir2/a.sln -> /testdir/a.txt

 

註釋:上面的命令中相對路徑的軟鏈接可能不太好理解,在此解釋一下,在給a.txt建立軟鏈接時,是軟鏈接經過怎樣就找到文件,此時前面的文件就是軟鏈接保存的路徑,就是相對軟鏈接而言,軟鏈接的上一層就是文件,所以建立相對路徑的軟鏈接就是那樣寫,當然寫絕對路徑就不會出現這麼繞,也不會出現任何問題。並且,軟鏈接如果建立的不對,軟鏈接將無法找到文件 ls –l 命令查看軟鏈接時,軟鏈接文件名將會出現閃爍,證明軟鏈接無效,或者文件已經被移除

 

4. 軟硬鏈接的本質區別:

1. 硬鏈接是在目錄文件創建了iNode節點指針,文件的元數據和文件數據本身沒有變化,刪除文件需要把文件的所有硬鏈接都刪除,文件纔算刪除

2. 軟鏈接本身是一個類似文本文件,自身存放指向文件的目錄信息,所指向的文件一旦移除,軟鏈接將失效。

3. 硬鏈接只能針對本個分區有效,因爲不同的分區有不同的iNode號分配,並且只能針對文件有效,使用的較少

4.軟鏈接既可以針對文件,也可以針對目錄,可以跨分區或文件系統建立,使用較多


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章