1.文件存储
-
inode:存放的是文件的属性信息(也就是ll命令的结果)但是不包括文件名(文件名放在目录中)并存放所对应数据所在的block块的地址的指针。
-
block:存放文件的数据,每个block最多存放一个文件,而当一个block存放不下的情况下,会占用下一个block。
-
联系:inode是一个索引节点,只有知道了inode才能方便找到block (inode就想一个门牌号,记录一个位置信息,我们知道位置才能快速高效的找到目的地)
- superblock记录此 filesystem 的整体信息,包括inode/block的总量、使用量、剩余量,以及文件系统的格式不相关信息等
2.链接文件
- 硬链接: 链接到源文件的inode上;
- 软连接: 创建了一个文件,拥有自己的inode,对应的block中存放云文件的路径。
- 【硬连接】
硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。(你可以理解inode就是一个超市的位置,block就是超市里面, 我们想进入超市只需要知道超市的位置,去这个位置有几条录,那么这个路就是硬链接) - 【软连接】
软链接(也叫符号链接)文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
实例演示
- 硬链接(用命令ln去表示)
我们现在/root 目录下创建一个叫123 文件我们在里面写一个jizhe 然后再把它ln到跟下然后删除 看看会怎么样?
可以看到我们删除了链接文件但是原文件里面的内容还是在的(这就好比上个例子我们堵住了一条路但是还有一条路仍然可以去到超市)
现在我们把原文件/root下的内容删掉,看看链接文件的内容能否存在?(默认现在链接文件里面有123)
我们可以看到如果删除了原文件链接文件是仍然存在的
- 软连接(用ln -s去表示)
我们先创建一个目录然后把文件456ln -s到date这个目录下
然后我们cd date下ls 看见456被软连接过来
然后我们stat date下的456
我们对照上图不难发现inode的号码是不相同的,所以就说明软连接后是有自己的inode
那么对于软连接 ,删除连接文件源文件会存在吗?下图可以看出是存在的
那么删除源文件链接文件会存在吗?
因为当源文件删除后系统默认inode没有用了就会吧inode清除,所以链接文件也就找不到了