Linux學習 鏈結

2021-08-20 10:48:04 字數 1232 閱讀 8453

正在學習linux,記錄一下學習歷程。

i節點當建立檔案時,完成了兩件事:

1. 在儲存裝置上保留一塊空間用來儲存資料

2. 建立乙個稱為索引節點或i節點的結構,來存放檔案的基本資訊

i節點包含使用檔案所需的全部檔案系統資訊。可以通過stat命令檢視i節點內容。

檔案系統將所有的i節點存放在乙個大表中,被稱為i節點表。

在i節點表中,每個i節點由所謂的所引號或i節點號表示。

目錄中只包含檔名稱及檔案的i節點號。

每當程式需要使用檔案時,程式在目錄中查詢檔案名將是一件簡單的事,只需使用相應的i節點號查詢i節點,然後使用i節點中的資訊訪問檔案即可。

鏈結從概念上講,鏈結將檔名和檔案本身連線起來。這也是i節點不包含檔名的原因。

乙個檔案可以有不止乙個名稱。

檔案的唯一識別符號是其i節點號,而不是它的名稱。

因此,多個檔名稱可以引用同乙個i節點號。

鏈結的基本想法是同乙個檔案可能擁有不同的含義(取決於檔案使用的環境)。

系統平等地對待所有的鏈結。

檔案不由它們的名稱或位置控制,而只受所有權和許可權控制。

建立新鏈結

每當建立檔案時,檔案系統就會自動在檔名和i節點間建立乙個鏈結。

當希望為已有檔案建立乙個新鏈結時,使用ln(link)命令。

ln file newname

為單個檔案建立新鏈結。

file是檔案的已有名稱,newname是希望賦予鏈結的新名稱。

ln file...  firectory

為乙個或多個普通檔案建立新鏈結,並將新鏈結放在指定的目錄中。

file是檔案的名稱,directory是希望放置新鏈結的目錄名稱。

ps:這裡的檔名稱均指檔案的路徑名,即在目錄樹中的定位。

移除鏈結

通過移除目錄條目,消除檔名和i節點號之間的連線。

如果檔案已經沒有鏈結,刪除該檔案。

符號鏈結

上文中討論的鏈結型別允許我們為同乙個檔案指定不止乙個名稱。

但是有兩個限制:

1. 不能為目錄建立鏈結

2. 不能為不同檔案系統中的檔案建立鏈結

用ln -s 建立。

符號鏈結檔案的檔案型別指示符為l

檔案只有4個位元組長,僅能容下實際檔案的路徑名。該檔案是乙個符號鏈結,而不是乙個只有4個字元的普通檔案,這一事實在該檔案的i節點中註明。

硬鏈結&軟鏈結

使用ls -l時顯示的鏈結數是硬鏈結的數量。

Linux學習 硬鏈結與軟鏈結

硬鏈結,鏈結雙方本質上是同乙個檔案。通俗理解為乙個人可以有多個名字,但不管有多少名字,名字的代表的就是這個人。建立硬鏈結會增加鏈結數,但是它們的節點編號都是一樣的。硬鏈結不依賴原始檔案,因此針對硬鏈結的刪除操作就是刪除檔案的名字,只要有乙個名字存在這個檔案就不會被刪除。硬鏈結操作中也可以使用絕對路徑...

linux學習之鏈結檔案

linux系統,為每個新建檔案都分配乙個索引節點 inode 每個檔案的indoe號唯一,檔案屬性儲存在inode中,在訪問該檔案時,該檔案的inode號會放到記憶體中,以實現快速訪問。linux的鏈結檔案相當於windows系統中的快捷方式,linux的鏈結檔案分為兩種,硬鏈結 hard link...

linux學習(十一) 鏈結指令碼

鏈結指令碼,其實是個規則檔案.是程式設計師用來指導鏈結器工作的,鏈結器會參考鏈結指令碼,並使啟動的使用規定的規則來處理.o檔案中的那些段,將其鏈結成乙個可執行程式.段 程式中有分為各個不同的段 段名分為2中 一種是編譯器鏈結器內部定好的,這是先天的名字,另外一種是程式設計師自己指定的,自定義的段名....