Linux——文件管理之inode

一、inode概念

inode(index node):譯爲“索引節點”,是理解Linux文件系統和硬盤存儲的基礎。

理解inode,要從文件儲存說起。文件儲存在硬盤上,硬盤的最小存儲單位叫做“扇區”。每個扇區能儲存512字節(相當於0.5KB)操作系統在讀取硬盤的時候,並非逐個讀取扇區,這種方式效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個“塊”(block)。這種由多個扇區組成的“塊”,是文件存取的最小單位。“塊”的大小,最常見的是4kb,即連續八個sector組成一個block。

文件數據都存放在block中,那麼與block存放相關聯的,必須有一個地方儲存文件的元信息,如文件的創建者、文件的創建日期、文件的大小等。這種儲存文件元信息的區域就叫inode。

二、inode表結構

Linux——文件管理之inode

Linux——文件管理之inode

三、inode內容

每一個inode(索引節點)是一個表項,包含有關文件的元數據信息,包括:
△ 文件類型:

“-” :普通文件
“d”:目錄
“c”:字符設備文件
“b”:塊設備文件
“p”:管道文件
“s”:套接字文件
“l” :鏈接文件

△ 權限:

    >讀(r)
    >寫(w)
    >執行(x) 

△ 文件所屬:

    >UID
    >GID

△ 硬鏈接數(指向這個文件名路徑名稱個數)

△ 文件大小、inode數

△ 時間戳:

    >ctime:文件的inode上一次變動的時間
    >mtime:文件內容上一次變動的時間
    >atime:文件上一次打開的時間

△ 文件數據block的位置:指向磁盤上文件的數據塊指針

△ 有關文件的其他數據

附:幾個相關命令的理解

  1. cp:分配一個空閒的inode號,在inode表中生成新條目;在目錄中創建一個目錄項,將名稱與inode編號關聯;拷貝數據生成新的文件

  2. mv:
    如果mv命令的目標和源在相同的文件系統,作爲mv 命令

    >用新的文件名創建對應新的目錄項
    >刪除舊目錄條目對應的舊的文件名
    >不影響inode表(除時間戳)或磁盤上的數據位置:沒有數據被移動!

    如果目標和源在一個不同的文件系統, mv相當於cp和rm

  3. rm:鏈接數遞減,從而釋放的inode號可以被重用;把數據塊放在空閒列表中;刪除目錄項;數據實際上不會馬上被刪除,但當另一個文件使用數據塊時將被覆蓋

  4. 鏈接

△ 硬鏈接:

    >創建硬鏈接會增加額外的記錄項以引用文件
    >對應於同一文件系統上一個物理文件
    >每個目錄引用相同的inode號
    >創建時鏈接數遞增
    >刪除文件時:
    >rm命令遞減計數的鏈接
    >文件要存在,至少有一個鏈接數
    >當鏈接數爲零時,該文件被刪除
    >不能跨越驅動器或分區
    >語法:
            ln filename [linkname ]

△ 軟鏈接(符號鏈接):

一個符號鏈接指向另一個文件
ls - l的 顯示鏈接的名稱和引用的文件
一個符號鏈接的內容是它引用文件的名稱
可以對目錄進行
可以跨分區
指向的是另一個文件的路徑;其大小爲指向的路徑字符串的長度;不增加或減
少目標文件inode的引用計數;
語法:
ln -s filename [linkname]

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