您的位置:首页 > 运维架构 > Linux

【Linux】inode信息详解

2017-04-23 21:44 316 查看

inode介绍

要理解inode,就先要理解文件的存储方式。我们都知道,文件是存储在硬盘上的。硬盘的最小单位是扇区,每个扇区的大小为512字节。

如果系统在读取硬盘数据的时候按扇区一个一个来读取,那效率就太低了,而是一次连续性读取多个扇区,所以设计者又将多个扇区整合成一个块(block),所以,块就是文件存取的最小单位。一个块的大小为4k。

我们现在已经有了块的概念,文件数据就是存放在块中。但光有数据还是不行啊?为了方便管理文件,我们还需要文件的元信息,比如文件的属性,创建时间,权限,所占的块大小,数量等等。这些信息就是inode信息。所以硬盘在分区的时候会分为两个区域,一个区域存放数据,一个区域存放inode信息。

每一个文件都有一个对应的inode。

inode信息

使用stat指令可查看对应文件的inode信息。

[lzk@localhost ~]$ stat file
File: `file'
Size: 319         Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d  Inode: 10775       Links: 1
Access: (0664/-rw-rw-r--)  Uid: (  500/     lzk)   Gid: (  500/     lzk)
Access: 2017-04-22 20:03:29.851012565 +0800
Modify: 2017-04-22 20:03:22.562012565 +0800
Change: 2017-04-22 20:03:22.563012584 +0800


具体内容如下:

文件名

inode编号

文件拥有者uid

文件的所属用户组 gid

文件的可读,可写,可执行权限 :Access: (0664/-rw-rw-r–)

文件的时间戳:

access time : 文件上一次打开的时间

modify time:文件内容上一次修改的时间

change time :文件的inode信息上一改变的时间

硬链接数:links

文件数据的所占用的块:block

文件所占用的字节数 size

等等。

Linux下一切皆文件,每个文件都有对应的inode信息。

关于inode编号,这里多说以下,每个文件都对应一个inode编号,操作系统用inode号码来识别文件,对于系统来说,文件名知识inode编号便于识别的别称或绰号。

表面上,打开文件是通过文件名,实际上要执行下面三个步骤:

1、查找文件的inode编号

2、根据inode编号,找到inode信息

3、根据inode信息找到文件对于所在的block,进行数据的读写。

inode大小

一个inode节点的大小一般为128字节或者256字节。inode节点的数量在硬盘格式化的时候就已经给定了。所以当Linux上创建文件过多时,就可能发生inode用光,无法创建新文件的问题。

查看inode的指令

查看每一个目录下每个文件的inode号

ls -i

查看对应文件的inode信息

stat [file]

查看硬盘上的inode总数和适用情况

df -i

查看硬盘上块(block)的总数和使用情况

df -l
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux inode 文件系统