文章目錄
- 現象
- 軟鏈接
- 硬鏈接
現象
建立軟鏈接
建立硬鏈接
// 刪除軟硬鏈接都可以用 unlink 指令
unlink soft-link
軟鏈接
軟鏈接是一個獨立的文件,因為有獨立的inode number
軟鏈接的內容:目標文件所對應的路勁字符串如果我們直接查看軟鏈接文件,就可以直接查看目標文件的內容了,這類似于Windows系統中的快捷方式;如果直接把目標文件刪除,那么再去查看軟鏈接文件,是無法查看的。
軟鏈接類似于Windows系統中快捷方式:
硬鏈接
硬鏈接的inode編號和目標文件是一樣的,硬鏈接不是一個獨立的文件,因為沒有獨立的inode number,用的是目標文件的inode
屬性中有一列硬鏈接數(文件的磁盤級引用計數,表示有多少個文件名字符串通過inode number指向inode),因此建立一個硬鏈接,對應的硬鏈接數就+1,刪除一個就-1,如果減為0,就相當于刪除這個文件。
為什么創建一個文件時,顯示文件的硬鏈接數是1,但是創建一個目錄時,顯示硬鏈接數是2?
查看dir的所有信息
dir目錄中.
指向dir的重命名(1314154),dir本身也是1314154,所以硬鏈接數是2
在dir文件中再去新建一個otherdir文件,會發現dir的硬鏈接數是3,這是因為在otherdir文件中存在一個..
,這指向dir
因此,任何一個目錄剛開始新建的時候,硬鏈接數一定是2,在該目錄中新建一個目錄,會讓該目錄的硬鏈接數自動+1,一個目錄內部有幾個目錄:該目錄的硬鏈接數-2
硬鏈接就是一個文件名和inode的映射關系,建立硬鏈接,就是在指定目錄下添加一個新的文件名和inode number的映射關系。
將目標文件刪除后,再去查看硬鏈接文件,它的屬性和內容依然存在,這就相當于對目標文件重命名。
Linux系統不允許給目錄建立硬鏈接,避免形成路勁環繞
總結:
硬鏈接作用:
- 構建Linux的路勁結構,讓我們可以使用
.
、..
來路勁定位 - 一般用來做文件備份