inode以及软硬链接

一、inode

①使用ls -l查看文件元数据,用来描述数据属性
这里写图片描述

模式  硬链接数 文件所有组  组   大小      最后修改时间     文件名

②使用stat查看,查看文件信息。
这里写图片描述

//Access:最后访问时间
//Modify:文件内容最后修改时间
//Chage:属性最后修改时间
//链接数:即有多少个文件名指向这个inode

③文件系统的构成

这里写图片描述

④inode

1)概念
存储文件信息的区域,中文译名为索引节点。
2)查看inode号

ls -i 文件名
//ll与ls -l功能一样
//ls -a:显示当前目录下所有文件,包括隐藏文件。

3)inode的大小
一般是128字节或256字节,inode节点的个数一般格式化的时候就确定了,一般每1KB或2KB就设置一个inode。可以使用df -i命令,查看每个硬盘分区的inode的总数和已经使用的数量。
这里写图片描述
4)一些说明
每个inode都有一个号码,操作系统使用inode号码来识别不同的文件,通过inode号可以找到文件所在的block,读取数据。
5)目录文件
目录也是一种文件,打开目录,其实相当于打开目录文件,目录文件的结构也是非常简单,是一系列目录项的列表。
这里写图片描述
6)理解目录权限的可执行
这里写图片描述

二、硬链接

1.概念
一般情况下,文件名和inode号是一一对应的,但是也有特殊情况,多个文件名可以指向同一个inode号,两个文件的链接状态完全相同,它们被称为指向文件的硬链接。意味着,可以用不同的文件名,去访问同样的内容,对文件内容修改,会影响到所有文件名,删除一个文件名,也不会影响另一个文件名的访问。
2.创建硬链接

//ln abc def
//abc是源文件,def是目标文件,但是创建之前,目标文件应该是不存在的。

这里写图片描述
3.删除文件
在目录中对应的记录删除,将硬链接数减1,如果为0,则将对应的磁盘释放。
4.目录文件的硬链接数
创建目录时会默认生成两个目录项”.”和”..”
“.”的inode是当前目录的inode,等同于当前目录的硬链接。
“..”的inode是当前目录的父目录的inode号码,等同于父目录的硬链接。
所以任何一个目录的硬链接总数,总是等于2加上它的子目录总数(含隐藏目录)。

三、软链接

1.概念
源文件与目标文件的inode号不一样,但是目标文件的内容存放的是源文件的路径,因此无论打开哪个文件,打开的都是源文件的内容。其实目标文件就相当于windows下的快捷方式,当你把源文件删除时,打开目标文件肯定会报错。
2.创建软链接

//ln -s 源文件 目标文件
//创建软链接之前,目标文件应该是不存在的。

这里写图片描述
软链接与硬链接最大的不同的是:目标文件指向源文件的文件名,而不是源文件的inode号。

四、inode的特殊现象

1.当一个文件移动或重命名的时候,文件的inode号不变
2.打开一个文件后,系统以inode识别文件,不在考虑文件名,所以,通常来说系统无法从inode号获取到文件名。
3.遇到特殊字符,rm删不了时,可以直接删除inode,从而删除文件。使用以下命令。

find . -inum 137872 -exec rm -i {} \;

猜你喜欢

转载自blog.csdn.net/guorong520/article/details/79886212