[LINUX]目录文件

- 目录也是一种文件,存储在磁盘上,只是文件的内容是按照约定的格式来写入的,内部写了该目录下的所有文件或者目录的名称,以及对应的inode编号。可以想象,这样就形成了一颗文件系统的目录树,存储在磁盘上。

- 每个节点存储自己的孩子节点,而根节点一般是固定的/目录。当我们给定一个文件的相对路径时,就在当前工作目录下(进程自身的一个属性),去查询是否有对应的相对目录(可能是递归的查询,先查有没有子目录,如果没有,就不用查下去的),这也是为什么通常会报的错误是no such file or directory,因为系统可能发现目录不存在就不往下查询了。一直到最后一级,才去查看是否有对应名称的文件。这个是可能的文件路径到inode节点的查询方式,类似于一棵树的遍历,当然,这个和inode一样,这颗树不一定一直存储在磁盘上面,也可以存储在高速缓冲中。

- 通常一个目录文件占据了一个磁盘块的大小,因此可以提前存储到内存中,这样从绝对路径到inode之间的转换过程就变成了:①查看是否有相关的目录的磁盘块,②查看最后一级目录中是否有想要的文件名称。③根据文件名称获取到inode节点,并将其打开(即设置对应的inode的引用数+1)

【注意】:这里需要纠正一点的是,如果只是打开一次文件,并不去读取,inode是无需更新的,因为引用数是inode内存结构中的概念,并不是inode磁盘结构中的字段。
 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值