在minix系统中输入如下指令
mv /tmp/test/a.txt /tmp/test/ttt/b.txt
文件系统具体的操作时什么?
step1 :找到/tmp/test所在目录项对应的数据块,得到a.txt文件的inode number,假设是0x18,并把inode number设为0,这样就把a.txt删除了
step2 :通过路径名得到/tmp/test/ttt目录所在的数据块,在其中添加一个新的目录项,并把该目录项的inode编号设置为Ox18,其他目录项的设置保持不变。这样就在/tmp/test/ttt下新建了一个b.txt。
所以说文件本身没有任何移动,在重命名指令下改变的只是目录项。
具体如下。
1.在/tmp/test目录项所在block找到a.txt,置为0.
022f060 00 00 62 2e 74 78 7400 00 00 00 00 00 00 00 00 |..a.txt.........| “a.txt”文件,其inode number
0022f070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 被设为0
2. 通过路径名翻译成磁盘上的位置得到“/tmp/test/ttt/”目录文件中的目录项,在其中添加一个新的目录项
0022f860 18 00 63 2e 74 78 7400 00 00 00 00 00 00 00 00 |..b.txt.........| “b.txt”文件,其inode number
0022f870 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 被设为0x18
橙色的内容62改成了63,其他内容没变,其实对应的是a.txt该名为b.txt,名字由a变成了b