<分区>
Possible Duplicate:
When running ls -l, why does the filesize on a directory not match the output of du?
嗨。 我对在 linux 中显示输出 ls -la 的信息很感兴趣。因此,默认大小为 4K。但如果有很多文件,可能大小为零,例如 PHP session =),大小 != 4K。 什么显示我 ls -la? 之后,当我清理这个文件夹时,我看到了最后的最大大小。
<分区>
Possible Duplicate:
When running ls -l, why does the filesize on a directory not match the output of du?
嗨。 我对在 linux 中显示输出 ls -la 的信息很感兴趣。因此,默认大小为 4K。但如果有很多文件,可能大小为零,例如 PHP session =),大小 != 4K。 什么显示我 ls -la? 之后,当我清理这个文件夹时,我看到了最后的最大大小。
最佳答案
ls -al
将为您提供目录本身占用的空间,而不是其中的文件。
因此,它具有最小尺寸。创建目录时,它会获得这么多空间来存储文件信息,这是每个文件的固定字节数(假设 64 字节,认为数字可能不同)。
如果初始大小为 4K,则最多允许 64 个文件。一旦目录中的文件超过 64 个,就必须对其进行扩展。
至于你的评论:
之所以删除其中的所有文件后它可能不会变小,是因为通常没有真正的优势。它只是保持相同的大小,这样下次您将一大堆文件放在那里时就不必再次扩展它(它倾向于假设过去的行为是 future 行为的指标)。
如果你想减少占用的空间,有一个老办法可以做到这一点。为了减小/tmp/qq
的大小,创建一个全新的/tmp/qq2
,复制所有文件(删除不需要的),然后只需将 /tmp/qq
重命名为 /tmp/qq3
并将 /tmp/qq2
重命名为 /tmp/qq
。瞧!哦是的,最终删除/tmp/qq2
。
关于linux - 什么大小的文件夹显示 ls -la,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2980083/