在哪种情况下,文件的物理大小是否小于逻辑大小?

beg*_*ner 9 unix linux filesystems file

通常,文件的物理大小大于逻辑大小.我想知道是否有任何相反的情况.可能存在某些文件,其物理大小将小于逻辑大小.

jll*_*gre 10

使用像ZFS这样的现代文件系统,有三种方法可以使文件的物理大小小于其逻辑大小:

  • 稀疏文件,其中仅包含零的数据块不是物理存储的.大多数当前文件系统都支持此功能,但不包括FAT和HFS +.

  • 压缩文件,操作系统使用压缩算法以低于其原始大小存储数据.ZFS,btrfs和HFS +正在实施数据压缩.

  • 重复数据删除文件,其中与不同文件有关但具有相同内容的块仅存储一次.这至少由ZFS,btrfs,vxfs和NTFS VHD(Windows Server 2012)实现.

快照和克隆也是一种技术,它允许多个文件具有共同的起源,但是不同的内容只能存储它们的差异,从而导致磁盘空间的增加.

可以添加允许多个"文件"(更准确地说是路径)共享相同数据的硬链接.

最后,符号链接不存储数据,但它们指向的文件(如果有)通常具有非空数据大小.


dus*_*uff 6

这种情况最常见的情况是稀疏文件.这些文件的物理尺寸小于它们的逻辑大小,因为它们的所有扩展区都没有被分配 - 文件中有"漏洞".

请注意,并非所有文件系统都支持稀疏文件.(特别是FAT没有.)


ine*_*ght 1

文件的物理大小通常是分配给该文件的所有块的总和,而逻辑大小是这些块的实际使用情况。如果文件在逻辑上大于其物理大小,则意味着可以动态生成一些数据(因为它的数据超出了块可以容纳的数据)。

您可以通过压缩文件并将压缩隐藏在文件系统驱动程序的详细信息中来实现该概念。通过这种方式,您可能有两个支持 1024 个物理字节的 512 字节块,但解压缩数据可能会显示文件中超过 1024 个逻辑字节。

还有其他重要的方法可以完成您所要求的任务,但我认为您不会在野外遇到它们(除非您在世界的一个非常小众的角落工作)。