Linux的文件系統中有3種區塊,分別是“superblock,inode,block”。
superblock:記錄文件系統的整體信息,包括inode和block的總量,使用量,剩余量,文件系統的格式與相關信息等
inode:記錄文件的屬性信息,包括權限,擁有者,所屬組,修改時間等,並且保存真正存放數據的block序號
block:存放具體數據,目錄文件的block存放的是下面文件的<文件名,inode序號>
Linux的文件可分為4類,分別是一般文件,目錄文件,軟符號鏈接文件,硬符號鏈接文件。
接下來將以上3種區塊與對這4類文件的操作聯系起來。
一、增加
1.1、對一般文件
分配一個inode區塊,根據文件大小分配一定數量的block區塊,inode區塊會保存這些block區塊的序號,在所在目錄中對應的block區塊中增加一行記錄,有該文件的<文件名,inode序號>。
1.2、對目錄文件
分配一個inode區塊,一般分配一個block區塊(目錄下面文件過多,可以分配多個block區塊),inode區塊會保存這個block區塊的序號,在所在目錄中對應的block區塊中增加一行記錄,有該目錄文件的<文件名,inode序號>。
1.3、對軟符號鏈接文件
分配一個inode區塊,沒有block區塊,inode區塊有個軟符號鏈接文件的特殊標識,並且保存有“鏈接到文件”的路徑,這個文件路徑必須得是絕對路徑,否則可能出錯,在所在目錄中對應的block區塊中增加一行記錄,有該文件的<文件名,inode序號>。
相當於windows下的快捷方式。
1.4、對硬符號鏈接文件
不分配inode區塊,也不分配block區塊,直接在所在目錄中對應的block區塊中增加一行記錄,有“鏈接到文件”的<文件名,inode序號>。
二、刪除
2.1、對一般文件
回收inode和所有的block區塊,在所在目錄對應的block區塊中刪除相應的<文件名,inode序號>。
2.2、對目錄文件
回收inode和所有的block區塊,在所在目錄對應的block區塊中刪除相應的<文件名,inode序號>。
2.3、對軟符號鏈接文件
回收inode區塊,在所在目錄對應的block區塊中刪除相應的<文件名,inode序號>。
2.4、對硬符號鏈接文件
在所在目錄對應的block區塊中刪除相應的<文件名,inode序號>。
三、修改
3.1、對一般文件
修改的是block裡面的內容。
3.2、對目錄文件
修改的是block裡面的內容。
3.3、對軟符號鏈接文件
修改的是“鏈接到文件”的block裡面的內容。
3.4、對硬符號鏈接文件
修改的是“鏈接到文件”的block裡面的內容。
四、查看
4.1、對一般文件
查看的是block裡面的內容。
4.2、對目錄文件
查看的是block裡面的內容。
4.3、對軟符號鏈接文件
查看的是“鏈接到文件”的block裡面的內容。
4.4、對硬符號鏈接文件
查看的是“鏈接到文件”的block裡面的內容。
參考文獻:
[1]鳥哥私房菜
[2]http://roclinux.cn/?p=754
[3]http://www.nixtutor.com/freebsd/understanding-symbolic-links/