ls 报告的目录大小

ls 报告的目录大小

我理解报告的大小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

通常,目录文件不会被清理 - 它们的空间通常足够小(与其内容相比),因此执行此操作无效(特别是当它们可能再次增长时)。找到这个问题的权威答案可能很困难......论坛评论很简单:

相关内容