什么决定目录大小?


10

我知道目录本身的大小与目录中文件的大小是不同的。

我认为目录是其中的目录和文件的列表,因此,由于块大小的限制,目录的大小应与其中的文件/目录的数量有关,最小为4096字节。

但是在我的系统中,我有很多填充良好的目录,其中包含4096字节,还有一些填充较少的目录,大约为10兆字节。您能解释一下为什么会这样吗?


1
对于进一步的阅读,这是相当有价值的信息:askubuntu.com/a/404716/380067
科斯

3
它不仅与目录中条目的数量有关,还与它们名称的长度有关。
kasperd 2015年

Answers:


13

使用的文件系统以及该目录在任何时间点的最大实体数决定了大小。为目录保留的默认大小用完后,将为目录分配更多空间。但是,当实体数量减少时,分配的空间不会自动释放。因此,如果某个目录中某个时刻有1000万个实体,则删除其中的9,999,999个实体时,其大小将保持不变。这导致了类似Unix&Linux帖子中的有趣情况。

$ mkdir foo; touch foo/{1..100000}; stat -c %s foo
2179072
$ rm foo/*; stat -c %s foo
2179072

这不一定适用于其他文件系统。该ext{2,3,4}文件系统受到影响。NTFS在较小程度上是。tmpfs而btrfs则不是。ZFS比较保守,我2在第二个stat命令中得到了输出。

有关:


大!我仍在想那怎么可能。
kos 2015年

XFS不受影响!应该添加
Edward Torvalds 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.