以前每次在網上看到軟鏈結和硬鏈結都嚇一小跳,心裡沒底。寫這篇文章是想自
己總結一下軟鏈結和硬鏈結在「行為上」的區別,感覺網上介紹的硬鏈結和軟鏈結的文
章都好嚇人,所以想用下面的幾個對比來簡化兩者的區別:
鏈結和原檔案具有不同的inode。(建立軟鏈結時,我們應該總是使用絕對路徑而不是
相對路徑,以最大化可移植性。)
修改原檔案:
@1:修改原檔案的名字:
軟鏈結將不再指向原檔案(軟鏈結使用檔名作為引用),而硬鏈結仍能夠正確的指
向原檔案(硬鏈結使用inode作為引用)。
@2:修改原檔案的內容:
由於軟硬鏈結檔案都指向原檔案,所以軟硬鏈結檔案的內容也隨之改變。
@3:刪除原檔案:
硬鏈結可以繼續獨立存在;而軟鏈結失效,不再指向原檔案。
不管是修改軟鏈結還是硬鏈結檔案的名字,更改後的鏈結檔案都仍然能夠指向原檔案。
修改硬鏈結檔案的內容,原檔案的內容也隨之改變,因此軟鏈結的內容也隨之改變。
當然刪除硬鏈結檔案不會對原檔案和軟鏈結檔案有任何影響,同樣軟鏈結也是。
@1:鏈結檔案名字想怎麼改都行,但原檔案的名字不能改(否則就得重新定義軟鏈結)。
@2:不管是修改原檔案還是軟硬鏈結檔案的內容,各個檔案都會同步。
@3:刪除鏈結檔案可以,但刪除原檔案會破壞軟鏈結。
軟鏈結和硬鏈結
又叫符號鏈結,這個檔案包含了另乙個檔案的路徑名。可以是任意檔案或目錄,可以鏈結不同檔案系統的檔案。鏈結檔案甚至可以鏈結不存在的檔案,這就產生一般稱之為 斷鏈 的問題 或曰 現象 鏈結檔案甚至可以迴圈鏈結自己。類似於程式語言中的遞迴。軟連線的格式是 ln s 目標檔名 鏈結名 在對符號檔案進行讀或寫操...
硬鏈結和軟鏈結
1.linux 鏈結概念 linux 鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為 符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在 linux 的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,...
硬鏈結和軟鏈結
在linux中除了程序之外都是檔案,目錄是特殊的檔案,目錄記錄了其他檔案的檔名。linux檔案被分為兩部分 元資料 檔案的屬性資料 和使用者資料 實際的資料 在linux中通過檔名開啟檔案。檢視檔案的inode號可以使用stat或者ls i命令。軟連線和硬鏈結 硬鏈結是兩個檔名指向同乙個inode,...