現代作業系統為解決資訊能獨立於程序之外被長期儲存引入了檔案,檔案作為程序建立資訊的邏輯單元可被多個程序併發使用。在 unix 系統中,作業系統為磁碟上的文字與影象、滑鼠與鍵盤等輸入裝置及網路互動等 i/o 操作設計了一組通用 api,使他們被處理時均可統一使用位元組流方式。換言之,unix 系統中除程序之外的一切皆是檔案,而 linux 保持了這一特性。為了便於檔案的管理,linux 還引入了目錄(有時亦被稱為資料夾)這一概念。目錄使檔案可被分類管理,且目錄的引入使 linux 的檔案系統形成乙個層級結構的目錄樹。
我們知道檔案都有資料與檔名,這在 linux 上被分成兩個部分:使用者資料 (user data)與元資料 (metadata)。使用者資料,即檔案資料塊 (data block),資料塊是記錄檔案真實內容的地方;而元資料則是檔案的附加屬性,如檔案大小、建立時間、所有者等資訊。在 linux 中,元資料中的 inode 號(inode 是檔案元資料的一部分但其並不包含檔名,inode 號即索引節點號)才是檔案的唯一標識而非檔名。檔名僅是為了方便人們的記憶和使用,系統或程式通過 inode 號尋找正確的檔案資料塊。
若乙個 inode 號對應多個檔名,則稱這些檔案為硬鏈結。換言之,硬鏈結就是同乙個檔案使用了多個別名(hard link 就是 file 的乙個別名,他們有共同的 inode)。硬鏈結可由命令 link 或 ln 建立。如下是對檔案 oldfile 建立硬鏈結。
ln /users/idktp/desktop/a.py /users/idktp/desktop/b.py
a.py 與 b.py 為硬鏈結,vim 修改其中任何乙個檔案的內容,另乙個檔案的內容也會隨之修改。
軟鏈結與硬鏈結不同,若檔案使用者資料塊中存放的內容是另一檔案的路徑名的指向,則該檔案就是軟連線。軟鏈結就是乙個普通檔案,只是資料塊內容有點特殊。軟鏈結可由命令ln -s建立。
參考文章:
linux硬鏈結與軟鏈結
1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...
Linux 硬鏈結與軟鏈結
原貼 2007 08 05 10 19 49 linux硬鏈結與軟鏈結 2006 12 01 15 03 首先要弄清楚,在linux系統中,核心為每乙個新建立的檔案分配乙個inode 索引結點 每個檔案都有乙個惟一的inode號。檔案屬性儲存在索引結點裡,在訪問檔案時,索引結點被複製到內存在,從而實...
linux硬鏈結與軟鏈結
1.linux鏈結概念 linux鏈結分兩種,一種被稱為硬鏈結 hard link 另一種被稱為符號鏈結 symbolic link 預設情況下,ln命令產生硬鏈結。硬連線 硬連線指通過索引節點來進行連線。在linux的檔案系統中,儲存在磁碟分割槽中的檔案不管是什麼型別都給它分配乙個編號,稱為索引節...