苏州建设档案馆官方网站,成都旅游必去景点,软件网站开发实训报告,京东商城官网入口磁盘及文件系统 文件的增删查改
重新认识目录 目录是文件嘛#xff1f; 是的。 目录有iNode嘛#xff1f; 有 目录有内容嘛#xff1f; 有 任何一个文件#xff0c;一定在一个目录内部#xff0c;所以一个目录的内容是什么#xff1f; 需要数据块#xff0c;目录的数据…磁盘及文件系统 文件的增删查改
重新认识目录 目录是文件嘛 是的。 目录有iNode嘛 有 目录有内容嘛 有 任何一个文件一定在一个目录内部所以一个目录的内容是什么 需要数据块目录的数据库里面保存的是该目录下 文件名和文件inode编号对应的映射关系。 文件查找 当我们访问一个文件的时候在某个特定的目录下 要访问的文件 例log.txt ① 先在当前目录下找到log.txt的inode编号 ② 一个目录也是一个文件也属于一个特定的分区。在该分区中找到分组在分组的inode table中找到文件的inode ③通过inode和对应datablock的映射关系找到该文件的数据块并加载到OS并完成显示到显示器。 文件删除 删除一个文件 例log.txt ①先找到该文件的inode。 ②通过inode映射关系将block bitmap对应的比特位置0。 ③通过inode映射关系将inode bitmap对应的比特位置0。 在进行文件删除的时候只需修改位图中对应的比特位不需要对数据块进行操作。 创建文件 创建一个文件 例log.txt ①创建一个文件时一定处于一个特定的目录下通过目录所属分区找到对应分组。 ②在inode bitmap中找到可以使用的位置定义新的inode。 ③计算出这个文件所要占用的数据块在block bitmap中找到能够使用的数据块。 ④将找到可以使用的数据块填入inode中blocks_arr数组中映射关系。 软硬连接 Linux 链接分两种一种被称为硬链接Hard Link另一种被称为符号链接Symbolic Link。默认情况下ln 命令产生硬链接。 硬连接 硬连接指通过索引节点来进行连接。在 Linux 的文件系统中保存在磁盘分区中的文件不管是什么类型都给它分配一个编号称为索引节点号(Inode Index)。在 Linux 中多个文件名指向同一索引节点是存在的。比如A 是 B 的硬链接A 和 B 都是文件名则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同即一个 inode 节点对应两个不同的文件名两个文件名指向同一个文件A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。 硬连接的作用是允许一个文件拥有多个有效路径名这样用户就可以建立硬连接到重要文件以防止“误删”的功能。 其原因如上所述因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接只有当最后一个连接被删除后文件的数据块及目录的连接才会被释放。也就是说文件真正删除的条件是与之相关的所有硬连接文件均被删除。 硬连接出来新文件使用原文件相同的inode number 说明他们公用一个inode结构体。 struct inode { //… int ref; //ref表示有几个硬连接 //… } 共用一个inode结构体说明他们的属性和内容是共享的改变其中一个另一个也会改变验证一下。 文件的硬连接数 思考为什么刚创建出来的普通问价硬连接是1而目录文件是2为什么目录文件不是1 原因因为新创建的目录文件中会有隐藏的两个文件一个 . 文件表示当前目录。一个 … 文件表示上一级目录我们可以看到 .文件和该目录文件inode number相同说明 .文件也是该目录文件的硬连接。 结论我们在创建目录文件的时候会在目录文件中创建两个隐藏文件一个.文件一个. .文件。.文件为当前目录文件的硬连接供用户使用。 用户自己不可以创建目录文件的硬连接操作系统不允许 软连接 另外一种连接称之为符号连接Symbolic Link也叫软连接。软链接文件有类似于 Windows 的快捷方式。 它实际上是一个特殊的文件。在符号连接中文件实际上是一个文本文件其中包含的有另一文件的位置信息。比如A 是 B 的软链接A 和 B 都是文件名A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同A 和 B 指向的是两个不同的 inode继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名可以根据这个找到 B 的目录项。A 和 B 之间是“主从”关系如果 B 被删除了A 仍然存在因为两个是不同的文件但指向的是一个无效的链接。 可以看到软连接出来的文件拥有一个新的inode number说明他们不是公用一个indode 结构体。也会有自己的inode tables、inode bitmap、block bitmap等。 不过文件的内容中存储的是原来文件的路径名和windows的快捷方式同理。 如果删除原来的文件那么创建出来的软连接文件不可被继续使用