Linux——文件管理之inode

一、inode概念

inode(index node):译为“索引节点”,是理解Linux文件系统和硬盘存储的基础。

理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”。每个扇区能储存512字节(相当于0.5KB)操作系统在读取硬盘的时候,并非逐个读取扇区,这种方式效率太低,而是一次性连续读取多个扇区,即一次性读取一个“块”(block)。这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是4kb,即连续八个sector组成一个block。

文件数据都存放在block中,那么与block存放相关联的,必须有一个地方储存文件的元信息,如文件的创建者、文件的创建日期、文件的大小等。这种储存文件元信息的区域就叫inode。

二、inode表结构

Linux——文件管理之inode

Linux——文件管理之inode

三、inode内容

每一个inode(索引节点)是一个表项,包含有关文件的元数据信息,包括:
△ 文件类型:

“-” :普通文件
“d”:目录
“c”:字符设备文件
“b”:块设备文件
“p”:管道文件
“s”:套接字文件
“l” :链接文件

△ 权限:

    >读(r)
    >写(w)
    >执行(x) 

△ 文件所属:

    >UID
    >GID

△ 硬链接数(指向这个文件名路径名称个数)

△ 文件大小、inode数

△ 时间戳:

    >ctime:文件的inode上一次变动的时间
    >mtime:文件内容上一次变动的时间
    >atime:文件上一次打开的时间

△ 文件数据block的位置:指向磁盘上文件的数据块指针

△ 有关文件的其他数据

附:几个相关命令的理解

  1. cp:分配一个空闲的inode号,在inode表中生成新条目;在目录中创建一个目录项,将名称与inode编号关联;拷贝数据生成新的文件

  2. mv:
    如果mv命令的目标和源在相同的文件系统,作为mv 命令

    >用新的文件名创建对应新的目录项
    >删除旧目录条目对应的旧的文件名
    >不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被移动!

    如果目标和源在一个不同的文件系统, mv相当于cp和rm

  3. rm:链接数递减,从而释放的inode号可以被重用;把数据块放在空闲列表中;删除目录项;数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖

  4. 链接

△ 硬链接:

    >创建硬链接会增加额外的记录项以引用文件
    >对应于同一文件系统上一个物理文件
    >每个目录引用相同的inode号
    >创建时链接数递增
    >删除文件时:
    >rm命令递减计数的链接
    >文件要存在,至少有一个链接数
    >当链接数为零时,该文件被删除
    >不能跨越驱动器或分区
    >语法:
            ln filename [linkname ]

△ 软链接(符号链接):

一个符号链接指向另一个文件
ls - l的 显示链接的名称和引用的文件
一个符号链接的内容是它引用文件的名称
可以对目录进行
可以跨分区
指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减
少目标文件inode的引用计数;
语法:
ln -s filename [linkname]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章