txw*_*ger 54
这是磁盘上用于存储目录元信息(即属于该目录的文件表)的空间大小。如果它是 1024,这意味着磁盘上的 1024 个字节用于此目的(它总是分配完整的块)。
sch*_*ily 17
的印有“的目录的大小”ls -l是(与任何文件类型)所报告的值stat()在呼叫statbuf.st_size。
这st_size对目录意味着什么,完全取决于文件系统类型。除非您知道文件系统类型并理解其概念,否则您无法从st_size.
在当前通常命名为 的历史悠久的 UNIX 文件系统中v7-fs,目录是重复的 16 字节条目,其中包含 16 位 inode 编号和 14 字节的文件名。目录的“大小”对于read(2)操作来说是有意义的,并且总是增长或保持原样。的.和..条目由手动硬联它们免受电流和目录上方的水平产生。一个健全的空处女目录的链接数是 2。
在自 1989 (SVr4) 起称为 BSD-4.2 文件系统中ufs,目录是一系列可变长度记录,它们使用的格式未获准稳定,因此不允许用户空间命令读取此格式。报告的“大小”是在 v7-fs 中以字节为单位的大小,大小通常会增加或保持原样,但较新版本的文件系统可能会在某些情况下缩小大小 - 但并不总是在您期望的时候。为空目录报告的链接数为 2 与v7-fs.
在WOFS1988 年夏天和 1991 年 5 月之间设计和实现的文件系统中,目录总是报告“大小”0,并且从来没有可以使用read(2)调用读取的内容类型。这是因为它WOFS是第一个写时复制文件系统,并且因为在WOFS文件中报告它们所在的目录而不是在目录中列出。如果您使用 读取WOFS目录readdir(),则只能获取预期条目的数据,而不会获取.和 的数据..。空目录的链接数WOFS为 1,整个行为完全符合 POSIX。
在ZFS,这是在阅读WOFS论文后实施的。ZFS是一个写时复制文件系统,它的作者不否认他们从WOFS. ZFS 上的目录报告number of directory entriesin st_size,因此报告的“大小”对于目录数据中占用的磁盘空间没有实际意义。ZFS 目录中没有.and..条目,但是如果您调用readdir(),这些条目将被伪造并为前两个操作返回。ZFS 是列表中唯一不支持硬链接目录的 FS,但报告的目录链接数始终为 2。 ZFS 中的这两个违规行为是为了减少非 POSIX 历史程序中的混淆。
与 ZFS 类似,WAFL 从WOFS. NetappWAFL是在WOFS论文发表3 年后编写的,WAFL 是写时复制,但 WAFL 似乎报告“大小”值,在假设目录有内容的情况下可能是“真实目录大小”。
h3r*_*ler 15
目录保留 4096 字节(至少)用于有关其自身及其内容的元数据。
此外,4096 字节是 ext2/ext3/ext4 文件系统的默认分配单元(块),因此目录不能更小。
在不同的文件系统上,您可能会发现目录具有不同的默认大小,这是由于文件系统的默认块大小。
目录大小也可以随着它们被填满而动态增长,但是一旦填满,为元数据保留的空间不能在不删除目录的情况下重新分配。
目录只是一个目录,就像电话目录一样。它只是一个带有数字列表和旁边的名称的文件。每个编号引用文件系统中的一个文件(一个 inode 编号),名称是文件名。
您需要磁盘空间来保存该数据,它的分配、增长和收缩方式取决于文件系统。