1、關于硬鏈接和軟鏈接是什么
硬鏈接與軟鏈接是 Linux 文件系統中的一個重要概念,其涉及文件系統中的索引節點 (index node 又稱 inode),而索引節點對象是 Linux 虛擬文件系統 (VFS) 的四個基本概念之一。通過剖析硬鏈接與軟鏈接的聯系與區別,我們可更好的了解 Linux 中 VFS 這一通用文件模型。
(1)區分硬鏈接和軟鏈接
那什么叫做硬鏈接呢?在維基百科上沒有相關的解釋,也就是說沒有這個頁面,所以在百度百科上娛樂一下,這個概念是這樣說的:
一個文件有幾個文件名(用ln命令實現多個文件名),我們就說該文件的鏈接數為幾。由定義可知,此鏈接數可以是1, 這表明該文件只有一個文件名。
總之,硬鏈接就是讓多個不在或者同在一個目錄下的文件名,同時能夠修改同一個文件,其中一個修改后,所有與其有硬鏈接的文件都一起修改了。
其實我們換言之,創建硬鏈接的時候都指向同一個文件,即使把原來創建的源文件名刪除之后,創建硬鏈接之后的文件也是照樣能訪問,因為它們兩個的inode節點都是一樣的,這就好比一個人你的身份證號碼是你唯一的,其編號是什么無所謂,只要證明你是唯一就行,只不過就是多起兩個名字,硬鏈接就好比一個文件多起了一個名字,但只要是你的inode節點是唯一就ok了。這其實就是對應于同一文件系統上一個物理文件
那什么叫做軟鏈接呢?這一次在維基百科上有了答案的相關解釋,它是一個特殊的文件,其包含一條絕對路徑和相對路徑的形式指向其它文件或目錄的引用。
符號鏈接的操作是透明的:對符號鏈接文件進行讀寫的程序會表現得直接對目標文件進行操作。某些需要特別處理符號鏈接的程序(如備份程序)可能會識別并直接對其進行操作。
(2)它們的限制
所謂的限制,其實還不如說是它們的注意事項:
a、硬件接不能夸分區,也只有在同一文件系統的文件之間才能創建鏈接。
b、硬鏈接適用與同一卷的同一級別,不能給目錄創建硬鏈接。
c、軟鏈接是能夸分區的,但是一旦目標程序被刪除之后,就不能查看文件內容了,雖然還指向哪里。
d、軟鏈接可以指向一個空的目標文件,可以自己循環自己,但刪除自己對其目標文件并不受影響。
2、命令
其實硬、軟鏈接的命令是一樣的,都是ln,只不過后者加-s才能標明這是創建軟鏈接的方式
硬鏈接命令格式:ln filename [linkname]
軟鏈接命令格式:ln -s filename [linkname]
創建硬鏈接的格式以及它的限制:
創建軟鏈接以及它的限制
總結:無論硬鏈接還是軟鏈接,各有各的好處,可以看自己的習慣以及情況來用
原創文章,作者:劉 祥宇,如若轉載,請注明出處:http://www.www58058.com/53015