文件系统处理文件所需要的所有信息都放在称为索引节点的数据结构中。文件名可以随时更改,但是索引节点对文件是唯一的,并且随文件的存在而存在。VFS索引节点的数据结构inode在/includ/fs/fs.h中定义如下(2.4.x版本)
当一个文件系统被格式化成ext2或者ext3的时候,就会产生Inode number。
1、用ls -i命令来查看文件系统对象的索引节点号
623809 include
12 tmp
2、文件系统的每个对象都分配到一个独一无二的索引节点号。
3、用ls -dl命令看到索引节点被引用的次数
drwxr-xr-x 12 root root 4096 Dec 7 2005 /usr/local
4、创建所有缺少的父目录
5、创建空文件
6、硬链接和符号链接(软链接)
读取和修改一个文件:
1、我们首先根据文件名,找到这个文件的Inode-no(节点数)。
2、当我们找到个文件的Inode-no时,就会根据这个number数在inodetable中找到对应的条目。
3、现在要我们看一看inodetable中的信息(ls -li):从左到右依次是:节点数、文件类型、文件的权限、硬链接数、用户ID、组ID、文件的大小、时间戳记,最后为指向硬盘上存放数据的数据块的指针
简单说一下其中的某些项(文件类型大有7种):
- 普通的文件
d 目录
l 链接文件
b 块设备文件
c 字符设备文件
p 命名管道
s socket文件
从这里我们也可以看出,在linux文件系统中,目录也是当作文件来看的!对于时间戳记有三种:存取时间,修改时间,变更时间 存取时间,为最后一次打开,或者是访问这个文件的时间; 而修改时间,为最后一次修改文件的时间; 当inodetable中的某项改变时,会更新变更时间。