關於軟連線與硬連線的問題

2021-04-13 23:20:35 字數 1662 閱讀 7898

問:

linux下軟連線與硬連線區別

回答:符號鏈結

存在兩種不同型別的鏈結,軟鏈結和硬鏈結。修改其中乙個,硬連線指向的是節點(inode),而軟連線指向的是路徑(path) 

1、軟鏈結檔案 

軟鏈結又叫符號鏈結,這個檔案包含了另乙個檔案的路徑名。可以是任意檔案或目錄,可以鏈結不同檔案系統的檔案。和win下的快捷方式差不多。鏈結檔案甚至可以鏈結不存在的檔案,這就產生一般稱之為"斷鏈"的問題(或曰「現象"),鏈結檔案甚至可以迴圈鏈結自己。類似於程式語言中的遞迴。

命令格式: 

**: 

ln [-s] source_path target_path 

2、硬鏈結檔案 

info ln 命令告訴您,硬鏈結是已存在檔案的另乙個名字,硬連線的命令是 

**: 

ln -d existfile newfile 

引用: 

硬鏈結檔案有兩個限制 

1、不允許給目錄建立硬鏈結; 

2、只有在同一檔案系統中的檔案之間才能建立鏈結。 

對硬鏈結檔案進行讀寫和刪除操作時候,結果和軟鏈結相同。但如果我們刪除硬鏈結檔案的原始檔,硬鏈結檔案仍然存在,而且保留了願有的內容。這時,系統就「忘記」了它曾經是硬鏈結檔案。而把他當成乙個普通檔案。修改其中乙個,與其連線的檔案同時被修改

軟:相當於ms下的快捷方式,不占用inode

硬:相當於乙個檔案的考貝!占用inode

問:rh9下開啟乙個終端,進入/home目錄,輸入ls -l 顯示總用量29,我一開始以為總用量指的是該目錄下的檔案數,顯示格式如下,

檔案型別和許可權      未知何意    使用者名稱    使用者組       大小        建立時間        目錄名

drwxr--r--            2         user1   usergroup1    4096       10月 25 08:16    user1

第2列的數字的意義?

答:如果是檔案,2就是硬鏈結數;

如果是資料夾,2就是這個資料夾下的目錄的數目(包括.和..這兩個特殊目錄)。

問:為什麼對乙個檔案建立了他的硬連線之後,兩個檔案指向相同的inode。只要為乙個對乙個檔案的進行修改另乙個檔案的內容也將會改變。但是在終端下建立完乙個硬連線(ln a_file.txt b_file.txt)之後呢,如果在視窗下,用gedit進行修改之後呢,會發現,a_file.txt的檔案內容並沒有得到改變。此時在終端下輸入ls -l會發現,多出了乙個檔案。a_file.txt b_file.txt b_file.txt~.為什麼會出現這種情況呢?

答:此時在終端下輸入命令 vi b_file.txt~會發現這個檔案和a_file.txt檔案內容是一樣的。這就是說,如果用gedit方式修改乙個檔案時,會先將原檔案刪除,再修改,最後儲存為b_file.txt。這時,b_file.txt檔案事實已經不再是原來的那個檔案了。這時,如果用命令ls -il會發現,a_file.txt,b_file.txt~有著相同的inode。這證明了之前所猜想的是正確的。如果用vi命令對檔案b_file.txt~進行修改,會發現修改的結果會影響到兩個檔案,a_file.txt,b_file.txt~。

綜上,問題的原因出在我們用geidt對檔案進行修改。如果用vi對檔案進行修改的話,就不會出現修改後a_file.txt b_file.txt內容不一致的情況了。

軟連線與硬連線

要弄清楚2者的區別,首先得明白linux系統中檔案是如何儲存的.在linux中儲存乙個檔案由3部分組成 檔名 inode block 資料塊 關於inode block用來儲存資料.而inode呢,就是用來儲存這些資料的資訊,這些資訊包括檔案大小,歸屬的使用者組,讀寫許可權等.inode為每個檔案進...

Linux 軟連線與硬連線

linux 軟連線與硬連線 2008 10 31 15 44 13 標籤 linux 職場休閒 軟連線與硬連線 linux 軟連線與硬連線 對於乙個檔案來說,有唯一的索引接點與之對應,而對於乙個索引接點號,卻可以有多個檔名與之對應。因此,在磁碟上的同乙個檔案可以通過不同的路徑去訪問該檔案。注意在li...

Linux軟連線與硬連線

linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結,ln s命令產生軟連線。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配...