可能重复:
When running ls -l, why does the filesize on a directory not match the output of du?
您好。 我很有兴趣在linux中输出ls -la的信息。因此,默认大小为4K。但是如果有很多文件,可能是零大小,比如PHP sessions =),那么大小!= 4K。 什么让我看到ls -la? 之后,当我清理这个文件夹时,我看到最后一个最大尺寸。
答案 0 :(得分:1)
ls -al
将为您提供目录本身占用的空间,不其中的文件。
因此,它具有最小尺寸。当创建一个目录时,它给了这么多空间来存储文件信息,这是每个文件的设定字节数(假设这个数字可能是64字节)。
如果初始大小为4K,则最多允许64个文件。一旦你将超过64个文件放入目录,就必须进行扩展。
至于你的评论:
当你删除其中的所有文件时它可能不会变小的原因是因为通常没有真正的优势。它只是保持相同的大小,以便下次你放入一大堆文件时不必再次扩展(它倾向于假设过去的行为是未来行为的指标)。
如果你想减少占用的空间,那么这就是一个老技巧。要缩小/tmp/qq
的尺寸,请创建一个全新的/tmp/qq2
,复制所有文件(删除不需要的文件后),然后只需将/tmp/qq
重命名为/tmp/qq3
}和/tmp/qq2
到/tmp/qq
。瞧!哦,是的,最终删除/tmp/qq2
。