文件系統----軟硬鏈接

ls -l 或者ll查看文件,可以看到如下圖所示:


ls -l 進程讀取了存儲在磁盤上的文件信息,然後顯示出來

除了這個方式還有一個查看文件信息的方法是stat命令


我們可以關注inode的信息,一個文件只有一個inode號。這就必須瞭解我們的文件系統

簡單的文件系統可以看成 超級塊+i節點表+數據區


超級塊存放文件的系統本身的信息----i節點表存放文件屬性如文件大小,所有者,最近修改時間等---數據區存放文件內容

注意的一點:目錄也是文件,文件的數據區存放的是目錄包含的文件名和inode編號

所以如果我們要刪除文件就只需要把文件對應的inode置0.

創建一個文件主要的4個操作:

1.存儲屬性

內核中找到一個空閒的i節點(這裏是26666)。內核把文件信息記錄在其中

2.存儲數據

該文件需要三個磁盤塊,內核找到三個空閒塊:100,200,300。將內核緩衝區的第一塊數據複製到100,依次累推進行存儲

3.記錄分配情況

文件內容順序100,200,300存放,內核在inode上的磁盤分佈區記錄上述塊列表

4.添加文件名到目錄

新的文件名爲test.c。內核入口將(26666,test.c)添加到目錄文件。文件名和inode之間的對應關係將文件名和inode的屬性鏈接起來。

文件硬鏈接

磁盤上的文件並不是文件名而是inode

我們對文件如下操作會有發現


inode是一樣的,打開文件內容也是一樣的,這也就是文件的硬鏈接。內核記錄了這個36003219文件的鏈接數爲2。

當我問要刪除文件時幹了兩件事:1.在目錄中刪除對應的文件記錄,2.將硬鏈接數減1,如果爲0則將對應的磁盤資源進行釋放。

文件軟鏈接

我們可以通過ln -s來創建軟鏈接來看看


我們可以發現:與硬鏈接最大的不同是軟鏈接具有自由的inode。軟鏈接存放個是如何找hi.c的路徑。

如果目錄中的文件特別隱藏,就可以用軟鏈接。windows下的快捷方式就相當於軟鏈接。

啦啦啦!!!就說到這裏了


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