inode概念總結

一、inode

 inode是類UNIX系統上文件系統中的一種數據結構。數據在磁盤上存儲是按扇區存放的,幾個扇區組成一個塊(block),操作系統為高效讀取磁盤上的數據,按block來讀取。而數據存放的block的地址就包含在inode里。

二、inode的存儲信息

 每個inode保存一個文件系統對象(目錄,文件,管道,軟連接,socket,設備文件等)的元數據信息,如下

  • 字節為單位表示的文件大小。

  • 設備ID,標識容納該文件的設備。

  • 文件所有者的User ID。

  • 文件的Group ID

  • 文件的模式(mode),確定了文件的類型,以及它的所有者、它的group、其它用戶訪問此文件的權限。

  • 額外的系統與用戶標志(flag),用來保護該文件。

  • 3個時間戳,記錄了inode自身被修改(ctimeinode change time)、文件內容被修改(mtimemodification time)、最后一次訪問(atimeaccess time)的時間。

  • 1個鏈接數,表示有多少個硬鏈接指向此inode。

  • 文件系統存儲位置的指針。通常是1K字節或者2K字節的存儲容量為基本單位。

三、inode的作用

 操作系統按inode的編號對文件進行識別,在同一文件系統內的inode的編號是唯一的。當我們打開一個文件的時候,系統按照directory里inode編號與文件名對照關系,把文件名轉換為inode編號,再根據inode編號對應的inode信息里指向的block地址來打開文件。這一特性使得在Linux上可以更新一個正在打開的文件,因為更新的文件由一個新的inode來指向,與系統正在使用的原inode不發生沖突,只是directory里的對照關系發生更改,當再次打開次文件時,系統即打開更新后的文件。

inode.png

  • inode不足時,再往文件系統上存放數據也會報存儲空間不足的錯誤

    這是有可能某目錄下已產生大量小文件,占用了大量inode

  • inode中存儲的block的地址數量和block塊的大小限制了一個文件系統最大單個文件大小

四、查看inode方法

[root@centos7 ~]# ll -i /root          #查看文件inode編號,第一列為inode編號
total 4
206271991 -rw-------. 1 root root 1598 Jul 21 11:40 anaconda-ks.cfg
  103963 drwxr-xr-x. 2 root root    6 Jul 21 11:42 Desktop
  103965 drwxr-xr-x. 2 root root    6 Jul 21 11:42 Documents
 70662524 drwxr-xr-x. 2 root root    6 Jul 21 11:42 Downloads
 70662525 drwxr-xr-x. 2 root root    6 Jul 21 11:42 Music
138238502 drwxr-xr-x. 2 root root    6 Jul 21 11:42 Pictures
206272017 drwxr-xr-x. 2 root root    6 Jul 21 11:42 Public
138238501 drwxr-xr-x. 2 root root    6 Jul 21 11:42 Templates
206272018 drwxr-xr-x. 2 root root    6 Jul 21 11:42 Videos

[root@centos7 ~]# df -i                #查看文件系統inode占用情況
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
/dev/sda2      41943040 138671 41804369    1% /
devtmpfs         229955    389   229566    1% /dev
tmpfs            233586     10   233576    1% /dev/shm
tmpfs            233586    590   232996    1% /run
tmpfs            233586     13   233573    1% /sys/fs/cgroup
/dev/sda5      20971520     15 20971505    1% /testdir
/dev/sda1        204800    330   204470    1% /boot
/dev/sr0              0      0        0     - /run/media/root/CentOS 7 x86_64
tmpfs            233586      1   233585    1% /run/user/1001
tmpfs            233586     17   233569    1% /run/user/42
tmpfs            233586      1   233585    1% /run/user/0

五、硬連接與軟鏈接

 硬連接的創建實質為同一物理文件起多個名字,都指向同一inode,所以不可以跨文件系統建立,也不能對目錄建立硬連接。

 軟鏈接的創建會產生新文件,占用一個inode,指向的是文件名,軟連接建立可跨文件系統,可對目錄建立。

  • 創建方法

ln TARGET LINK_NAME      #創建硬連接

ln -s TARGET LINK_NAME   #創建軟連接

注:創建軟連接時,TARGET如是相對路徑,則為LINK_NAME上級目錄的相對路徑

ln -s Videos/movie /root/movie

則創建了軟鏈接文件/root/movie 指向目錄/root/Videos/movie 

原創文章,作者:cutemsyu,如若轉載,請注明出處:http://www.www58058.com/29134

(1)
cutemsyucutemsyu
上一篇 2016-08-05
下一篇 2016-08-05

相關推薦

  • 第十周 N21 總有刁民想害朕

    1、請詳細描述CentOS系統的啟動流程(詳細到每個過程系統做了哪些事情)   加電-MBR-GRUB-/sysinit-init X 對應的服務-/etc/rc.d     MBR        讀取分區表     GRUB      &…

    Linux干貨 2016-09-26
  • 高級變量-有類型變量

    一.高級變量用法– 有類型變量   Shell 變量一般是無類型的,但是bash Shell 提供了declare和 typeset 兩個命令用于指定變量的類型,兩個命令是等價的 declare [ 選項]  變量名 -r  將變量設置為只讀屬性 -i  將變量定義為整型數 -a  將變量定義為數…

    Linux干貨 2016-11-24
  • 文本處理三劍客之sed及vi編輯使用

    作用:       sed是Linux系統文本處理工具中的三劍客之一,它是一種流編輯器,以行為單位,能夠使用正則表達式;跟其他文本處理工具模式相同,不對原文件直接操作,而是先借用一個臨 時的數據緩沖區存放文文本數據,同時還有一個自己獨特的空間"pattern space",我們稱之為sed的模式空間,它的處理…

    Linux干貨 2016-08-11
  • linux文件基本權限、默認權限、隱藏權限和ACL權限

    基本權限    文件屬性rwx     每個文件當用ls -l查看時,都會顯示文件的詳細屬性信息,其中在排在首位的共有10位字符信息     例如 -rw-r–rw-. 1 root root …….. 共有10位,第一位代表的是文件的類型,后邊9位表示的是文件的…

    Linux干貨 2016-08-04
  • 一些鮮為人知的編程事實

    我的程序員經歷讓我明白了一些關于軟件開發的事情。下面是一些在編程中可能會讓人感到詫異的事情: 一個程序員用了大約只用了10%-20%的時間來編碼,而且大多數程序員,無論他的水平如何,其平均每天只有10-12行的代碼最終會進入最終的軟件產品中。這是因為,優秀的程序員會花費90%的時間來思考、調查、研究最佳的設計。而糟糕的程序員則會花費90%的時間來調試代碼,并…

    Linux干貨 2016-07-11
  • 硬鏈接與軟鏈接的區別

    硬鏈接(Hard Link):   硬連接指通過索引節點來進行鏈接(即一個指針指向文件索引節點)。在Linux的文件系統中,保存在磁盤分區中的文件不管是什么類型都給它分配一個編號,稱為索引節點號(Inode Index)。在Linux中,多個文件名指向同一索引節點是存在的。一般這種鏈接就是硬鏈接。硬鏈接的作用是允許一個文件擁有多個有效路徑…

    Linux干貨 2016-10-20
欧美性久久久久