我理解报告的大小ls
与目录内的索引节点数相对应,而不是它们的实际大小。
当使用 . 显示目录大小时,我注意到了奇怪的行为ls
。以下是快速重现它的方法:
首先创建空目录,报告的大小ls
是4096(如预期)
mkdir test
ll -d test/
drwx------ 2 root root 4,096 2015-Dec-29 22:22:36 test/
在里面创建10,000个文件。报告的大小现在为 167,936
touch test/{1..9999}
ll -d test/
drwx------ 2 root root 167,936 2015-Dec-29 22:23:24 test/
删除所有文件。大小应减小回 4096
rm test/*
ll -d test/
drwx------ 2 root root 167,936 2015-Dec-29 22:23:59 test/
但报告的大小仍为 167,936。
为什么?
有人可以解释一下吗?
答案1
通常,目录文件不会被清理 - 它们的空间通常足够小(与其内容相比),因此执行此操作无效(特别是当它们可能再次增长时)。找到这个问题的权威答案可能很困难......论坛评论很简单:
- 缩小/重置目录大小?
- Linux目录不会自动收缩也给出了一些见解。
- 为什么条目数量多的目录删除条目后大小没有缩小?提供了针对Linux的权威答案