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 16:13
下一篇 2016-08-05 16:13

相關推薦

  • Bash的基礎特性(二)

    Bash的基礎特性(二) glob文件通配符 (* ; ? ; [ ] ; [^ ] ) 星號* 匹配任意所有字符的 [root@lyp ~]# ls h* hello.sh hello.shbak ?匹配單個字符 ls ???? 查看四個字符命名的文件 [0-9]匹配數字 [a-z] 字母 字母的順序安裝 a A b B c C… z Z 匹配的a-z […

    Linux干貨 2017-04-01
  • Linux腳本基礎練習

    馬哥教育網絡班+ 第7周課堂練習 Linux腳本基礎練習 練習: 1、創建一個10G分區,并格式為ext4文件系統; (1)要求其block大小為2048,預留空間百分比為2,卷標為MYDATA,默認掛載屬性包含acl (2)掛載至/data/mydata目錄 要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 第一步,在虛擬機中掛載一塊20G的新硬盤 &…

    Linux干貨 2016-11-09
  • 周期性計劃任務Cron詳解

    概述 cron 是Linux 或者類 Unix 系統的作業調度程序。利用它,我們可以配置某些命令或者腳本,讓命令和腳本在某個設定的時間內周期性地運行。本文主要以描述了 CentOS 6的cron命令的詳細知識。 了解cron組件 cron程序由程序包cronie提供,我們可以通過rpm -qi cronie查看cronie的信息。 cron 的組件包括: 1…

    Linux干貨 2016-09-18
  • Linux bash中命令執行狀態返回值

    Linux bash中命令執行狀態返回值 在操作系統中,命令的執行后輸出的內容為命令執行結果輸出,而這個命令本身是否執行成功,它是通過命令執行狀態返回值來標識的。 常用的值: 0 表示命令執行成功非0 表示命令執行失敗 bash中獲取命令執行狀態返回值的方法 在剛執行完一條指令后,使用echo $?取得上一條指令的命令執行狀態返回值,示例如下:  …

    Linux干貨 2016-11-06
  • openssl、openssh

    openssl 傳輸層協議:TCP,UDP,SCTPport:進程地址,進程向內核注冊使用某端口(獨占) 同一主機上的進程間通信:IPC, message queue, shm, semerphor 不同主上的進程間通信:socket cip:port <– –> sip:port cip:55673 <&#8211…

    Linux干貨 2017-05-31
  • 馬哥教育網絡班第25期-第1周作業

    一、計算機的組成及其功能 計算機由硬件與軟件組成 硬件     1、運算器                           &…

    Linux干貨 2016-12-05
欧美性久久久久