1、概念解讀
1.1什麼是鏈接?
鏈接是一種在共享文件和訪問它的用戶的若干目錄項之間建立聯繫的方法。Linux 系統中有兩種鏈接:硬鏈接(Hard Link)和軟鏈接(Soft Link),軟鏈接又稱之爲符號鏈接
1.2什麼是軟鏈接?
軟鏈接又稱之爲符號鏈接,軟鏈接文件也是一種文件,文件中包含另外一個文件的路徑名,而這個另外文件就是我們要鏈接的原始文件,軟連接好比在Windows中建立的快捷方式。可以是任意文件或目錄,可以鏈接不同文件系統的文件。
1.3什麼是硬鏈接?
硬鏈接是一個指針,指向文件索引節點,系統並不爲它重新分配i節點,可以理解爲硬鏈接鏈接的就是內容存放空間的地址,訪問這個硬鏈接,就相當於訪問這個內容的存放地址了,這和我們訪問我們鏈接的原始文件是一樣的,所以說硬鏈接和硬鏈接鏈接的原始文件之間的區別不是很大,訪問硬鏈接的原始文件,也就是訪問內容在空間中的存放地址。
1.4鏈接概述
(1)對軟鏈接進行讀寫操作的時候,其實本質就是在對原始的鏈接對象進行讀寫操作,若是將軟鏈接刪除,則鏈接對象不會受到什麼影響,若是將鏈接對象刪除,則鏈接文件會失效,雖然不會也消失,但是卻不能訪問。
(2)硬鏈接是已存在文件的另一個文件,說是克隆文件也不爲過,對硬鏈接文件進行讀寫和刪除操作時結果和軟鏈接相同。但如果刪除硬鏈接文件的源文件,硬鏈接文件仍然存在,而且保留了原有的內容。這時,系統會忽略它曾經是一個硬鏈接文件,而把它當成一個普通文件。
硬鏈接文件有以下兩個限制:
1、不允許給目錄創建硬鏈接。
2、只有在同一個文件系統(即同一個分區)中的文件之間才能創建鏈接。
(3)硬鏈接和軟鏈接文件的區別
硬鏈接記錄的是目標的i節點 ,軟鏈接記錄的是目標的路徑。軟鏈接就像是快捷方式,硬鏈接就像是備份。軟鏈接可以做跨分區的鏈接,硬鏈接只可以 做本分區的鏈接。
2、使用命令創建鏈接
創建鏈接的命令是:ln
格式:】# ln [選項][鏈接對象][鏈接文件]
命令中選項的含義:
-i:交互模式,覆蓋時徵求用戶的意見。
-s:創建符號鏈接(即軟鏈接)而不是硬鏈接。
舉例:
a、硬鏈接
[root@linux-6 luam]# echo hello >a
[root@linux-6 luam]# ls
a
[root@linux-6 luam]# cat a
hello
[root@linux-6 luam]# ln a b //建立一個硬鏈接,b是a的硬鏈接文件。
[root@linux-6 luam]# ls
a b
[root@linux-6 luam]# ls -l
total 8
-rw-r--r--. 2 root root 6 Jan 24 07:25 a
-rw-r--r--. 2 root root 6 Jan 24 07:25 b
[root@linux-6 luam]#
//硬鏈接文件的兩個文件的屬性都是一樣的。
b、軟鏈接
[root@linux-6 luam]# ln -s a b //建立一個軟鏈接,b是a的軟鏈接文件。
[root@linux-6 luam]# ls
a b
[root@linux-6 luam]# ls -l
total 4
-rw-r--r--. 1 root root 6 Jan 24 07:25 a
lrwxrwxrwx. 1 root root 1 Jan 24 07:30 b -> a
[root@linux-6 luam]#
//軟鏈接文件的兩個文件屬性是不同的。鏈接文件容量很小,因爲它只是一個指向源文件的快捷方式。
注:本文參考了《Linux 實用教程》 人民郵電出版社出版。
注:本人熱愛Linux,願意和各位linux愛好者交流,有意者加我QQ:2306810955,驗證碼:linux。可以更深的交流。期待和您一起探討linux的知識。
指導老師:雙星科技馮老師