Windows文件大小

我不确定这适用于Unix或除Windows以外的任何其他操作系统,因此标题。 当您在Windows中查看文件的属性时,您会在磁盘上看到“大小”和“大小”。 有人可以解释两者之间的区别吗?

“磁盘上的大小”考虑了可能已应用于该文件的任何压缩以及文件写入最后一个分配单元末尾的“松弛”空间。

NTFS允许对文件进行透明压缩/解压缩。 压缩文件时,其大小保持不变(即文件中的数据大小),但文件的磁盘占用空间可能较小,因为NTFS驱动程序将在写入磁盘时透明地压缩文件数据。

文件系统以primefaces分配单元存储文件 – 在NTFS和(ex)FAT的情况下是“群集”。 给定卷的簇大小可能有所不同(从NTFS的4K到64K,其他文件系统的其他大小)。 一个小于单个群集的文件将被存储在一个群集中,因此至less占用一个群集的磁盘空间。 文件大小不太可能是群集大小的确切倍数,因此为文件分配的最后一个群集将包含文件数据和占用最后群集中剩余未使用部分的“松弛”数据的组合。 “磁盘上的大小”也计算这个“松弛”的空间。

值得注意的是,就NTFS而言,可以在该文件的主文件表(MFT)条目(文件名,文件数据和文件属性组合为1024个字节或更less的文件)中存储非常小的文件。 该文件仍将在NTFS卷的群集大小的磁盘上显示大小。

稀疏文件是一种机制,通过这种机制,文件看起来非常大,但是包含大量零区域,并且有稀疏的数据运行。 NTFS支持稀疏文件,并将磁盘上的大小报告为数据运行使用的实际区域,不包括零。

编辑:

正如syneticon-dj指出的那样,这个问题当然也适用于其他操作系统。 du命令的GNU版本有一个--apparent-size参数,它将显示文件的数据大小,而不是磁盘大小(这是du的默认值)。 有时候每个尺寸都是相关的,知道这些差异是个好主意。