第4节. 文件节点表

文件的存放有inode表格和data表格

image-20220110160637127

上图可见,创建一个文件夹后,inode就占掉一个。

image-20220110161211321

touch命令本身不支持这么多个参数,所以换种方式

echo f{1..524288} |xargs touch

节点编号

img

上图可见分区的空间大小,以及节点数最大值。sda1的inodes最大值为65536。

超出节点编号就不行了

echo f{1..65539} |xargs touch

img

所以看到没有设备空间不一定是真的,可能是节点编号满了。

img

删除rm *是不行的,可以删除所在文件夹rm -rf /boot/testdir

或者这么删就行了啊:

echo f{1..524288} |xargs rm -rf

节点编号和软连接和硬链接密切相关

image-20220110164258451

ext文件系统的架构

image-20220110164345044

直接指针是12个

image-20220110164500286

①数据量低于48K,直接指针就可以搞定。

image-20220110164749601

②超出48K--4M,使用间接指针表示。

image-20220110164813549

③4M-4GB的采用二级指针

image-20220110170239283

现在centos7是XFT文件系统和ext的文件系统不一样。

不管什么系统都是类似的机制。

对于文件夹来讲他的内容放的是什么

image-20220110170845135

文件名是属于文件夹的内容DATA。是放在数据块空间的。

明白这一点,rm f1本质上是删除他的节点表,指正指向的数据块就没人用了,该空间标记为空闲free状态,但是不会删除数据。如果你新建一个文件可能会覆盖掉的。

此外dir1/下的F1的数据就清了。

image-20220110171130174

所以删除f1是需要有f1所在文件夹的权限就行了。

硬连接,本身就是同一个文件

img

跨分区了,不同分区肯定不是一个文件了,所以肯定不支持

img

硬链接不能针对文件夹创建。据说是防止循环现象。

image-20220110180350667


image-20220110180016043

image-20220110180102220

删a1的操作等价上图的示例

image-20220110174709900

image-20220110174724737

备注:

👉以下是vim一个文件,然后echo 然后vim vim 发现indoe在两个数字跳来跳去的(估计和vim打开的时候会自动创建一个.xxx.swp有关,可能是这个原因,也不是swp文件的inode不在那两个反复替换的inode里面,反正vim该文件inode是变的,而且是2个inode数字来回变)。然后echo不会。
[10:54:28 root@localhost data]#echo inode_echo >> test
[10:54:43 root@localhost data]#stat test
  File: test
  Size: 19              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33577448    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2022-01-29 10:54:20.066021237 +0800
Modify: 2022-01-29 10:54:43.345023132 +0800
Change: 2022-01-29 10:54:43.345023132 +0800
 Birth: 2022-01-29 10:54:20.066021237 +0800
[10:54:44 root@localhost data]#ll -i
total 8
51325766 drwxr-xr-x. 2 root  root  6 Jan 19 19:57 dir
  373349 drwxr-xr-x. 2 user1 g12   6 Jan 19 19:58 dir2
33577410 -rw-rw-r--+ 1 root  root  7 Jan 29 10:53 f1
33577446 -rw-r--r--. 1 user1 g12   0 Jan 19 19:58 f2
33577448 -rw-r--r--. 1 root  root 19 Jan 29 10:54 test
[10:54:47 root@localhost data]#
[10:54:50 root@localhost data]#vim test
[10:55:00 root@localhost data]#
[10:55:00 root@localhost data]#vim test
[10:55:03 root@localhost data]#ll -i
total 8
51325766 drwxr-xr-x. 2 root  root  6 Jan 19 19:57 dir
  373349 drwxr-xr-x. 2 user1 g12   6 Jan 19 19:58 dir2
33577410 -rw-rw-r--+ 1 root  root  7 Jan 29 10:53 f1
33577446 -rw-r--r--. 1 user1 g12   0 Jan 19 19:58 f2
33577450 -rw-r--r--. 1 root  root 28 Jan 29 10:54 test
[10:55:04 root@localhost data]#stat test
  File: test
  Size: 28              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33577450    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2022-01-29 10:55:01.373024600 +0800
Modify: 2022-01-29 10:54:59.985024487 +0800
Change: 2022-01-29 10:54:59.987024487 +0800
 Birth: 2022-01-29 10:54:59.985024487 +0800
[10:55:09 root@localhost data]#vim test
[10:55:25 root@localhost data]#
[10:55:25 root@localhost data]#
[10:55:25 root@localhost data]#stat test
  File: test
  Size: 39              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33577448    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2022-01-29 10:55:25.695026580 +0800
Modify: 2022-01-29 10:55:25.695026580 +0800
Change: 2022-01-29 10:55:25.697026580 +0800
 Birth: 2022-01-29 10:55:25.695026580 +0800
[10:55:27 root@localhost data]#
[10:55:35 root@localhost data]#
[10:55:35 root@localhost data]#vim test
[10:55:44 root@localhost data]#
[10:55:44 root@localhost data]#stat test
  File: test
  Size: 50              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33577450    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2022-01-29 10:55:44.687028126 +0800
Modify: 2022-01-29 10:55:44.687028126 +0800
Change: 2022-01-29 10:55:44.688028126 +0800
 Birth: 2022-01-29 10:55:44.687028126 +0800
[10:55:45 root@localhost data]#
[10:57:23 root@localhost data]#stat test
  File: test
  Size: 55              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33577448    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2022-01-29 10:57:23.128036141 +0800
Modify: 2022-01-29 10:57:23.128036141 +0800
Change: 2022-01-29 10:57:23.129036141 +0800
 Birth: 2022-01-29 10:57:23.128036141 +0800
[10:57:23 root@localhost data]#echo 12 >> test
[10:57:29 root@localhost data]#stat test
  File: test
  Size: 58              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33577448    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2022-01-29 10:57:23.128036141 +0800
Modify: 2022-01-29 10:57:29.437036654 +0800
Change: 2022-01-29 10:57:29.437036654 +0800
 Birth: 2022-01-29 10:57:23.128036141 +0800
[10:57:30 root@localhost data]#echo 333 >> test
[10:57:35 root@localhost data]#stat test
  File: test
  Size: 62              Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 33577448    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:default_t:s0
Access: 2022-01-29 10:57:23.128036141 +0800
Modify: 2022-01-29 10:57:35.603037157 +0800
Change: 2022-01-29 10:57:35.603037157 +0800
 Birth: 2022-01-29 10:57:23.128036141 +0800
[10:57:36 root@localhost data]#


total 20
33577460 drwxrwxrwx.  4 root  root    78 Jan 29 10:58 .
     128 dr-xr-xr-x. 18 root  root   236 Jan 10 18:13 ..
51325766 drwxr-xr-x.  2 root  root     6 Jan 19 19:57 dir
  373349 drwxr-xr-x.  2 user1 g12      6 Jan 19 19:58 dir2
33577410 -rw-rw-r--+  1 root  root     7 Jan 29 10:53 f1
33577446 -rw-r--r--.  1 user1 g12      0 Jan 19 19:58 f2
33577448 -rw-r--r--.  1 root  root    62 Jan 29 10:57 test
33577447 -rw-r--r--.  1 root  root 12288 Jan 29 10:58 .test.swp
Copyright 🌹 © oneyearice@126.com 2022 all right reserved,powered by Gitbook文档更新时间: 2024-07-28 14:47:55

results matching ""

    No results matching ""