linux中文件索引節點知識

概念

索引節點

    inode表中包含了文件系統全部文件列表
    一個節點是在一個表項裏,包含文件數據(元數據)。
        1.文件類型,權限,UID,GID
        2.連接數(指向這個文件名路徑名稱個數)
        3.文件的大小和時間戳
        4.指向磁盤上文件的指針
        5.有關文件的其餘數據
        6.inode 索引節點編號 node

inode表結構

    linux中文件索引節點知識

  • 直接塊指針:有12個塊直接指向對應的數據單元,每一個數據單元能夠容納4K大小文件,全部直接塊指針只能存儲48k大小的文件。
  • 間接塊指針:指向一個指針塊,裏面不放數據,大小爲4k,每一個塊佔4個字節,全部有1024個指針,而後每一個指針指向真正的數據塊。這樣計算下來4*1024=4M。
  • 雙重間接塊指針:在間接塊的基礎上再增長一個指針塊,這樣計算下來有410241024=4G。

    inode號

    linux中文件索引節點知識
  系統中將目錄下的文件名和文件inode號之間的映射做爲目錄的數據存放;人們經過文件名進行操做時,系統會經過對應路徑目錄的inode號找到目錄的inode表數據,進而經過數據指針指向目錄的數據,匹配文件名,獲得文件的inode號;再到inode表中找到此文件的表項,再由文件數據指針指向真正的文件數據。
    1.系統中同一分區節點編號是惟一的。
    2.不一樣分區的節點編號相同但不是同一個文件。
    3.每一個分區的節點編號都是有限的,若是節點編號用完會致使在此分區裏不能建立新的文件,但系統中可能還有大量的磁盤空間,全部必定要注意是不是節點編號用盡。 linux

    linux中文件索引節點知識

文件操做與inode的關係

  1.cp命令
    系統分配一個空閒的節點編號,在節點表中生成一條新的信息,在目錄中建立一個目錄項,將名稱與inode編號關聯;拷貝數據生成新的文件。ide

  2.rm命令
    首先文件有沒有連接數,當連接數減到零後,系統釋放節點編號,並刪除目錄表信息和對應的指針,但數據塊的數據不會被刪除,只有系統從新啓用此數據塊時數據纔會被覆蓋。
  mv命令
    若是目標和源文件都存在相同一個分區裏,則刪除舊的目錄信息,建立新的信息,其餘的沒有改變,若是目標和源文件在不一樣的分區,mv至關於cp和rm。 指針

硬連接和軟連接

1.硬連接
  語法:ln filename [linkname ]
  a. 硬連接的新建是爲同一inode號添加文件名 (本質是在目錄條目裏爲inode號增添一個文件名映射,指向同一個inode表數據,所以數據相同)
   b. 新建硬連接,連接數增長(連接數實質就是 inode號 對應文件名的個數;當 inode 號映射的文件名不存在時,此 inode號就會被系統回收重用)
  c. 硬連接文件和原文件之間數據共享,但又互相獨立;(修改其中任意一個文件的數據,其餘的文件數據都會改變,刪除硬連接文件則對應的連接數會減小,若是是最後一個連接數則直接刪除文件。)
  d. 不能跨分區和跨設備建立硬連接
  e. 不能對目錄建立硬連接 (目錄最多有三個硬連接,目錄自己,目錄下的 . ,子目錄下的 ..)
2.軟連接
  語法:ln -s filename [linkname ]
  a. 軟連接實質是新建一個文件快捷方式,存放的數據是原文件的文件名,文件數據大小是原文件名字的字節數;訪問時經過文件名指向到原文件數據
  b. 軟連接支持跨分區
  c. 能夠建立目錄軟鏈接
  d. 軟連接文件依賴於原始文件 ;刪除原始文件,軟連接文件會失效 blog

相關文章
相關標籤/搜索