Answers:
这是磁盘上用于存储目录(即属于该目录的文件表)的元信息的空间大小。如果它是1024,则意味着为此使用了磁盘上的1024个字节(始终分配完整的块)。
印刷的“目录大小” ls -l
(与任何文件类型一样)是stat()
调用中报告的值statbuf.st_size
。
这st_size
对目录意味着什么,完全取决于文件系统类型。除非您了解文件系统类型并了解其概念,否则您无法从中的值推论出任何东西st_size
。
在当前通常命名为的历史性UNIX文件系统中v7-fs
,目录重复了16个字节的条目,其中包含16位的索引节点号和14个字节的文件名。目录的“大小”对于read(2)
操作而言是有意义的,并且始终保持不变。的.
和..
条目由手动硬联它们免受电流和目录上方的水平产生。一个健全的空少女目录的链接计数为2。
在自1989年以来被称为BSD-4.2文件系统(SVr4)中ufs
,目录是一系列可变长度记录,这些记录使用的格式不被授予稳定的格式,因此不允许用户空间命令读取该格式。报告的“大小”是与v7-fs中一样的字节大小,该大小通常按原样增加或保持不变,但是在某些情况下,较新版本的文件系统可能会缩小大小-但并非总是如此。报告的空目录链接计数为2,与相同v7-fs
。
在WOFS
1988年夏季至1991年5月之间设计和实现的文件系统中,目录始终报告“ size” 0,并且永远不会包含可通过read(2)
调用读取的内容类型。这是因为这是WOFS
第一个写时复制文件系统,并且是因为在WOFS
文件中报告了它们所在的目录,而不是在目录中列出。如果WOFS
使用阅读目录readdir()
,则只会获取预期条目的数据,而不会获取.
和的数据..
。一个空目录的链接计数WOFS
为1,整个行为完全符合POSIX。
在中ZFS
,这是在阅读WOFS
论文后实施的。ZFS
是一个写时复制文件系统,其作者并不否认他们从复制了概念WOFS
。ZFS上的目录报告number of directory entries
in st_size
,因此对于目录数据中的已占用磁盘空间,报告的“大小”没有实际意义。ZFS目录中没有.
和..
条目,但是如果调用readdir()
,这些条目将被伪造并返回前两个操作。ZFS是列表中唯一不支持硬链接目录的FS,但是报告的目录链接数始终为2。ZFS中的这两个不规则之处是为了减少非POSIX历史程序中的混乱而实现的。
与ZFS相似,WAFL复制了的部分想法,但不是全部WOFS
。Netapp WAFL
是在WOFS
论文发表三年后写成的,WAFL是写时复制的,但是WAFL似乎报告了“大小”值,在目录具有内容的假设下,该值可能是“实际目录大小”。
目录为有关其自身及其内容的元数据保留4096个字节(至少)。
另外,4096字节是ext2 / ext3 / ext4文件系统的默认分配单位(块),因此目录不能更小。
在不同的文件系统上,您可能会找到具有不同默认大小的目录,这是由于文件系统的默认块大小所致。
目录大小在填充时也可以动态增长,但是一旦填充,保留给元数据的空间就无法在不删除目录的情况下重新分配。
目录只是一个目录,例如电话目录。它只是一个带有数字列表和数字名称的文件。每个数字都引用文件系统中的一个文件(一个索引节点编号),名称是文件名。
您需要磁盘空间来保存该数据,数据的分配,增长和收缩方式取决于文件系统。