其中包含的有另一檔案的位置資訊。
inode,繼而指向兩塊不同的資料塊。
但是 a 的資料塊中存放的只是b的路徑名(可以根據這個找到 b 的目錄項)。
a 和 b 之間是「主從」關係,如果 b被刪除了,a 仍然存在(因為兩個是不同的檔案),但指向的是乙個無效的鏈結。
硬連線指通過索引節點來進行連線。在 linux 的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節點號(inode index)。
即乙個 inode節點對應兩個不同的檔名,兩個檔名指向同乙個檔案,a和b對檔案系統來說是完全平等的。刪除其中任何乙個都不會影響另外乙個的訪問。
硬連線的作用是允許乙個檔案擁有多個有效路徑名,這樣使用者就可以建立硬連線到重要檔案,以防止「誤刪」的功能。其原因如上所述,因為對應該目錄的索引節點有乙個以上的連線。只刪除乙個連線並不影響索引節點本身和其它的連線,只有當最後乙個連線被刪除後,檔案的資料塊及目錄的連線才會被釋放。也就是說,檔案真正刪除的條件是與之相關的所有硬連線檔案均被刪除。
# 建立原檔案
[root@localhost qqc_ceshi]# touch test_one.txt
# 建立軟鏈結
[root@localhost qqc_ceshi]# ln -s test_one.txt test_three.txt
# 建立硬鏈結
[root@localhost qqc_ceshi]# ln test_one.txt test_two.txt
# 檢視建立的檔案
[root@localhost qqc_ceshi]# ls -l
總用量 0
-rw-r--r--. 2 root root 0 8月 9 17:23 test_one.txt
lrwxrwxrwx. 1 root root 12 8月 9 17:26 test_three.txt -> test_one.txt
-rw-r--r--. 2 root root 0 8月 9 17:23 test_two.txt
[root@localhost qqc_ceshi]# rm -rf test_one.txt
[root@localhost qqc_ceshi]# cat test_two.txt
i am file
[root@localhost qqc_ceshi]# cat test_three.txt
cat: test_three.txt: 沒有那個檔案或目錄
軟鏈結 硬鏈結
硬鏈結與軟鏈結的聯絡與區別 我們知道檔案都有檔名與資料,這在 linux 上被分成兩個部分 元資料 metadata 是檔案的附加屬性,如檔案大小 建立時間 所有者等資訊。使用者資料 user data 即檔案資料塊 data block 資料塊是記錄檔案真實內容的地方 元資料則在 linux 中,...
軟鏈結 硬鏈結
硬鏈結就是同一塊資料但有兩個不同的名字,讀寫的時候本質上都是修改的同一塊資料。硬鏈結在刪除的時候只是刪除了乙個名字。只有一塊資料的所有名字都刪除了的時候,資料才會被刪除。刪除的時候相當於把牆的這一面糊上,但蘋果本身不動,只有兩面都糊上了,你才會看不到 符號鏈結就是 我聲稱我有乙個蘋果,但是當你找我要...
軟鏈結和硬鏈結
又叫符號鏈結,這個檔案包含了另乙個檔案的路徑名。可以是任意檔案或目錄,可以鏈結不同檔案系統的檔案。鏈結檔案甚至可以鏈結不存在的檔案,這就產生一般稱之為 斷鏈 的問題 或曰 現象 鏈結檔案甚至可以迴圈鏈結自己。類似於程式語言中的遞迴。軟連線的格式是 ln s 目標檔名 鏈結名 在對符號檔案進行讀或寫操...