海带

文件的大小与存储空间

文件的大小与存储空间

无论是liunx 还是windows文件的大小与存储空间一般是不一致的。

一般文件的存储空间要大于文件的大小。这是为什么呢?


说个生活中的实例:

比如我要把我的3只鞋放到鞋盒中,一般一个鞋盒放两只鞋,所以3只鞋要占用我的2个鞋盒。

在操作系统中,把鞋盒称为"簇".一个簇中装两只鞋。而我的3只鞋就是文件的大小。

而要把我3只鞋装到鞋盒中(簇),就需要两个鞋盒(簇),对应就是3只鞋,站2个鞋盒

而要把我2只鞋装到鞋盒中(簇),就需要1个鞋盒(簇),  对应就是2只鞋,站1个鞋盒


如果按比例算,3只鞋应该站1.5个鞋盒。而不是两个鞋盒 鞋盒就是计算机中的(簇),汇集起来就形成了存储空间。

一般一个(簇)大小是4k,如果这个文件大小在4k一以下,站存储空间在4k,一旦超过了4k不超过8k,那他存储空间就是8k,依次类推。



在liunx中使用du命令计算出来的文件要比ls显示的文件大小要大,主要原因在于:

du:指的是占用的磁盘空间。占用空间取决于文件系统的block的大小,linux默认大小为4K。一个大小为1个字节的文件,最小也要占用4k

ls 显示的文件大小比du显示的磁盘占用空间小,比如文件系统的block是4K,一个15K的文件占用的空间是 15k/4k = 3.75 个block,一个block只能被一个文件占用,因此实际占用空间就是4个block,就是16K。


特别是在碎小的文件中,存储空间和文件大小比例会很大。比如文件大小3.8k 占用存储空间4k。文件大小4.1k占用存储空间为8k。文件大小相差0.3k,存储空间多出来4k;

如果这样文件很对,那存储空间消耗很大。