linux中文件索引节点知识

概念

索引节点

    inode表中包含了文件系统所有文件列表
    一个节点是在一个表项里,包含文件数据(元数据)。
        1.文件类型,权限,UID,GID
        2.链接数(指向这个文件名路径名称个数)
        3.文件的大小和时间戳
        4.指向磁盘上文件的指针
        5.有关文件的其他数据
        6.inode 索引节点编号

inode表结构

    

  • 直接块指针:有12个块直接指向对应的数据单元,每个数据单元可以容纳4K大小文件,所有直接块指针只能存储48k大小的文件。
  • 间接块指针:指向一个指针块,里面不放数据,大小为4k,每个块占4个字节,所有有1024个指针,然后每个指针指向真正的数据块。这样计算下来4*1024=4M。
  • 双重间接块指针:在间接块的基础上再增加一个指针块,这样计算下来有410241024=4G。

    inode号

    
  系统中将目录下的文件名和文件inode号之间的映射作为目录的数据存放;人们通过文件名进行操作时,系统会通过对应路径目录的inode号找到目录的inode表数据,进而通过数据指针指向目录的数据,匹配文件名,得到文件的inode号;再到inode表中找到此文件的表项,再由文件数据指针指向真正的文件数据。
    1.系统中同一分区节点编号是唯一的。
    2.不同分区的节点编号相同但不是同一个文件。
    3.每个分区的节点编号都是有限的,如果节点编号用完会导致在此分区里不能创建新的文件,但系统中可能还有大量的磁盘空间,所有一定要注意是否是节点编号用尽。

    

文件操作与inode的关系

  1.cp命令
    系统分配一个空闲的节点编号,在节点表中生成一条新的信息,在目录中创建一个目录项,将名称与inode编号关联;拷贝数据生成新的文件。

  2.rm命令
    首先文件有没有链接数,当链接数减到零后,系统释放节点编号,并删除目录表信息和对应的指针,但数据块的数据不会被删除,只有系统重新启用此数据块时数据才会被覆盖。
  mv命令
    如果目标和源文件都存在相同一个分区里,则删除旧的目录信息,创建新的信息,其他的没有改变,如果目标和源文件在不同的分区,mv相当于cp和rm。

硬链接和软链接

1.硬链接
  语法:ln filename [linkname ]
  a. 硬链接的新建是为同一inode号添加文件名 (本质是在目录条目里为inode号增添一个文件名映射,指向同一个inode表数据,因此数据相同)
   b. 新建硬链接,链接数增加(链接数实质就是 inode号 对应文件名的个数;当 inode 号映射的文件名不存在时,此 inode号就会被系统回收重用)
  c. 硬链接文件和原文件之间数据共享,但又互相独立;(修改其中任意一个文件的数据,其他的文件数据都会改变,删除硬链接文件则对应的链接数会减少,如果是最后一个链接数则直接删除文件。)
  d. 不能跨分区和跨设备创建硬链接
  e. 不能对目录创建硬链接 (目录最多有三个硬链接,目录本身,目录下的 . ,子目录下的 ..)
2.软链接
  语法:ln -s filename [linkname ]
  a. 软链接实质是新建一个文件快捷方式,存放的数据是原文件的文件名,文件数据大小是原文件名字的字节数;访问时通过文件名指向到原文件数据
  b. 软链接支持跨分区
  c. 可以创建目录软连接
  d. 软链接文件依赖于原始文件 ;删除原始文件,软链接文件会失效

原文地址:https://blog.51cto.com/13449039/2395301

时间: 2024-11-02 14:46:43

linux中文件索引节点知识的相关文章

Linux中文件描述符和打开文件之间的关系

Linux中文件描述符和打开文件之间的关系 文件描述符: 在形式上是一个非负整数.实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表. Linux中的文件类型 Linux系统中把一切都看做文件,包括普通文件-.目录文件d.字符设备文件c.块设备文件b.符号链接文件l.文件描述符是内核为了高效管理已被打开的文件所创建的索引(一个非负整数),用于指代已被打开的文件,Linux下所有的的I/O操作的系统调用都是通过文件描述符执行.例如0表示标准输入.1表示标准输出.3表示标准错

Linux中文件的基本属性

一.用户及用户组 所有者(属主):一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者,每个文件的所有者(属主)有且仅有一个.用ll命令可以看到文件的所有者. 所属组(属组):当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组,一个用户可以属于多个组但仅有一个主组,用ll命令可以看到文件的所有组. 其他人:除开文件的所有者和所属组之外的用户,系统的其它用户都是文件的其他者.比如创建了两个用户Tom和Jerry,Tom相对Jerry创建的文件来说就是其他人. 二.文件权限 L

linux 中文件类型和颜色的区分

linux 中文件类型和颜色的区分 to be  continued linux 中文件类型和颜色的区分,布布扣,bubuko.com

MD5的好处及linux中文件MD5校验和的应用

MD5算法简介: MD5全称是报文摘要算法(Message-Digest Algorithm5),此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的"指纹"(或称"报文摘要"),不同的文件产生相同的报文摘要的可能性是非常非常之小的. Message Digest Algorithm MD5为计算机安全领域广泛使用的一种散列函数,MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改.它是用复杂的数学算法求得的一个12

linux中文件的三种时间

Linux 中文件的三种时间 文件的三种时间: 1.        mtime 文件的修改时间 文件的内容发生改变.包括文件中空格数目.字符的变动再复原等这些看上去并不影响有效数据内容的操作. 有意的改变时间戳.Eg:使用touch –m –t 2016666666666fileName这样的命令故意改变mtime. 2.        ctime 文件的改变时间 文件的"属性"改变.Eg:文件的权限.属主.属组等. mtime发生改变和人为的改变atime的情况,Eg:touch –

Linux文件系统与索引节点inode浅析

我们知道磁盘在分区后还需要进行格式化,之后操作系统才能使用这个分区.而需要格式化的原因正是因为每种操作系统所设置的文件属性/权限并不相同.在Linux中,传统的磁盘文件系统是EXT,下面以EXT为例浅析Linux的文件系统与索引节点. 我们知道,文件的数据除了文件实际内容之外,通常还含有非常多的属性.文件系统通常会将权限与属性等数据放置到inode(index node)中,至于实际数据则放置到data block块中:另外,还有一个超级块会记录整个文件系统的整体信息. 在文件系统中,每个ino

linux中的inode节点

一.背景 传统的磁盘与文件系统的应用中,一个分区就只能够被格式化成一个文件系统,所以我们可以说一个文件系统就是一个分区.但是由于新技术的利用,例如我们常听到的LVM与软磁盘阵列(software raid),这些技术可以将一个分区格式化为多个文件系统(例如LVM),也能够将多个分区合成一个文件系统(LVM,RAID),通常我们可以称呼一个可被挂载的数据为一个文件系统而不是一个分区. 那么文件系统是怎么运行的呢?这与操作系统的数据有关.较新的操作系统的文件数据除了文件实际内容外,通常含有非常多的属

linux中文件的三种time(atime,mtime,ctime)

linux下文件有3个时间的,分别是atime,mtime,ctime.有些博友对这3个时间还是比较迷茫和困惑的,我整理了下,写下来希望对博友们有所帮助. 1 这三个time的含义 简名 全名 中文名 含义 atime access time 访问时间 文件中的数据库最后被访问的时间 mtime modify time 修改时间 文件内容被修改的最后时间 ctime change time 变化时间 文件的元数据发生变化.比如权限,所有者等 2 如何查看这3个time [[email prote

Linux中文件权限、用户和用户组管理

1.文件权限 2.文件和目录rwx权限说明 文件rwx权限: r  :  可读,具有读取文件内容的权限(),如果没有r,vi/vim编辑器提示无法编辑(可强制编辑),echo可以追加或重定向. w :  可写,具有修改文件内容的权限 x  :  可执行,具有执行文件的权限. 需满足:文件本身具有可执行权限:普通用户还需具有r权限:root用户只要x权限就可执行.linux中可执行文件:*.sh     *.py     *.perl等等. 目录rwx权限: r  :  可读,查看目录下面文件及子