Linux中軟硬鏈接詳解

1.鏈接的概念

簡單的理解鏈接就是快捷方式,在Windows系統中,快捷方式就是指向原文件的一個鏈接文件,可以讓用戶從不同的位置來訪問原始的文件;原文件一旦被刪除或剪切到其他地方後,會導致鏈接文件失效。但是在Linux系統中這個看似簡單的東西和Windows裏的可能不大一樣。

2.鏈接的分類

在Linux系統中有軟、硬兩種鏈接文件之分。

硬鏈接(hard link)

我們可以將它理解爲一個“指向原始文件inode的指針”,系統不爲它分配獨立的inode和文件。所以,硬鏈接文件與原始文件其實是同一個文件,只不過是不同的名字而已。我們每添加一個硬鏈接,該文件的inode鏈接數就會增加1;而且只有當該文件的inode連接數爲0時,纔算徹底將它刪除。換言之,由於硬鏈接實際上是指向原文件的inode的指針,因此即便原始文件被刪除,依然可以通過硬鏈接文件來訪問。

總結起來有以下幾點:

1.硬鏈接,以文件副本的形式存在。但不佔用實際空間。

2.不允許給目錄創建硬鏈接

3.硬鏈接只有在同一個文件系統中才能創建

 

軟連接(也稱爲符號鏈接[symbolic link])

軟鏈接僅僅包含所鏈接文件的路徑名,因此能鏈接目錄文件,也可以跨越文件系統進行鏈接。但是,當原始文件被刪除後,鏈接文件也將失效,從這一點上來說與Windows系統中的“快捷方式”具有一樣的性質。

總結起來有以下幾點:

1.軟鏈接,以路徑的形式存在。類似於Windows操作系統中的快捷方式

2.軟鏈接可以跨文件系統 ,硬鏈接不可以

3.軟鏈接可以對一個不存在的文件名進行鏈接

4.軟鏈接可以對目錄進行鏈接

3.ln命令

ln 命令用於創建鏈接文件,格式爲“ln [選項] 目標”,其可用的參數以及作用如下:

-b 刪除,覆蓋以前建立的鏈接

-d 允許超級用戶製作目錄的硬鏈接

-f 強制執行

-i 交互模式,文件存在則提示用戶是否覆蓋

-n 把符號鏈接視爲一般目錄

-s 軟鏈接(符號鏈接)

-v 顯示詳細的處理過程

4.使用實例演示硬鏈接和軟鏈接之間的區別

創建一個軟鏈接

說明:軟鏈接在刪除掉原始文件後,它的鏈接文件將會失效,無法再訪問文件內容,類似於Windows的快捷方式。

創建一個硬鏈接

說明:硬鏈接在刪除原始文件後,它的鏈接文件還可以繼續訪問,這是因爲新建的硬鏈接不再依賴原始文件的名稱等信息,我們可以看到在創建完硬鏈接後,原始文件的硬盤鏈接數量增加到了2,如果想要徹底刪除,鏈接數成0纔算徹底刪除。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章