Posts 重写linux命令04_pwd
Post
Cancel

重写linux命令04_pwd

1. unix 文件目录

1.1 文件目录的工作过程

抽象模型为: 包含一个i-节点与文件名的表

ls -1ia

1
2
3
4
5
(base) root@xm-System-Product-Name:/home/xm/xyx/linux_os# ls -1ia
1613828 .
1613831 ..
1606606 a.txt
1586697 b.txt

输出的为文件名与对应 i-节点号

1.2 指向同一文件的多重链接

若两个文件名不同,i-节点相同,实际上这两个文件就是一个文件。

1.3 文件的的存储划分

p1

  1. 超级快 存放文件系统本身结构信息
  2. i-节点表 文件属性,大小,所有者,修改时间,等。
  3. 数据区

2 理解目录结构

2.1 文件在目录中

文件x在目录a中,意味着 *a目录中包含一个文件名x和i节点入口号为481

2.2 目录包含子目录

3 cat命令的工作原理

cat userlist

  1. 在文件目录中寻找文件名

  2. 定位i-节点并读取内容

  3. 访问存储文件内容中的数据块

open一个没有权限的文件将发生什么情况? 内核首先根据文件名找到i-节点号,通过i-节点号找到i-节点。内核根据文件的权限位跟用户id判断

4 i-节点与大文件

简单来说是这样的,i-节点一共有13个数据块。其中,前10项放文件的实际数据,如果文件大于10。后面三块为 间接块,二级间接块,三级间接块。 p105

5 编写pwd命令

基本思路: 找到当前节点”.”i-节点号,打开父级“..”目录,寻找i-节点号的文件名。 再打开父级目录。一次循环。 跳出循环条件为,”.” 与 “..” i-节点号相同。

This post is licensed under CC BY 4.0 by the author.

Contents

Trending Tags