加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux目录大小/块计数的单调增长

发布时间:2020-12-13 18:14:02 所属栏目:Linux 来源:网络整理
导读:在 Linux上,(可能是文件系统块大小的函数),当我创建一个目录并对其进行统计时,它返回4096的大小.我可以在这个目录中创建文件,直到某一点,而不会增加感知的大小目录(由stat报告). 在某些时候,当目录填满许多文件时,目录大小气球(我不是在谈论目录的内容,我说
在 Linux上,(可能是文件系统块大小的函数),当我创建一个目录并对其进行统计时,它返回4096的大小.我可以在这个目录中创建文件,直到某一点,而不会增加感知的大小目录(由stat报告).

在某些时候,当目录填满许多文件时,目录大小气球(我不是在谈论目录的内容,我说的是代表目录本身所消耗的块).如果删除文件,则目录大小保持不变.

这是一个简单的例子:

[root@uxlabtest:/]$mkdir test
[root@uxlabtest:/]$stat test
  File: `test'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd00h/64768d    Inode: 1396685     Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-07-26 14:06:04.000000000 -0400
Modify: 2011-07-26 14:06:04.000000000 -0400
Change: 2011-07-26 14:06:04.000000000 -0400

然后触摸一堆文件:

[root@uxlabtest:/]$for i in `seq 1 10000`; do touch /test/$i; done
[root@uxlabtest:/]$stat test
  File: `test'
  Size: 155648          Blocks: 312        IO Block: 4096   directory
Device: fd00h/64768d    Inode: 1396685     Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-07-26 14:06:04.000000000 -0400
Modify: 2011-07-26 14:06:56.000000000 -0400
Change: 2011-07-26 14:06:56.000000000 -0400

然后删除文件:

[root@uxlabtest:/]$rm -rf /test/*
[root@uxlabtest:/]$stat test
  File: `test'
  Size: 155648          Blocks: 312        IO Block: 4096   directory
Device: fd00h/64768d    Inode: 1396685     Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2011-07-26 14:07:11.000000000 -0400
Modify: 2011-07-26 14:07:12.000000000 -0400
Change: 2011-07-26 14:07:12.000000000 -0400

我的问题是:

>为什么目录的大小/块数会单调增加?
>这是底层文件系统还是Linux VFS的功能?
>可以在不删除和重新创建目录的情况下减小目录大小吗?
>加分点:指向实现此行为的内核源代码.

解决方法

以下是ext2 / ext3 / ext4的答案.如果它们适用于其他文件系统,则取决于它们的实现.

> user48838正确回答了这个问题.更多文件消耗更多元数据.它们以4k块或文件系统创建时定义的任何其他大小分配
>是的,它是真实文件系统的功能/问题
>在ext3文件系统中,这是不可能的.只能通过重新创建(空)目录
>源代码大约是here并在相关文件中

但你有运气.重新创建已删除的相同数量的文件时,目录大小将保持不变.只有当您添加更多文件时,它才会增加.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读