我的stat /etc
命令显示块数是24。我理解这里的一个块意味着512字节。因此总大小为 24 × 512,即 12288 字节。
但它显示 8192 字节,我不明白为什么。在我看来,它应该是 12288 (3 × 4096)。
$ stat /etc
File: /etc
Size: 8192 Blocks: 24 IO Block: 4096 directory
Device: fd00h/64768d Inode: 16777345 Links: 152
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-01-28 00:03:35.470200471 +0100
Modify: 2022-01-27 23:59:09.331606660 +0100
Change: 2022-01-27 23:59:09.331606660 +0100
Birth: -
/etc
位于 XFS 文件系统上。
答案1
由于这是在 XFS 上,因此报告的大小/etc
和分配给它的块数之间的差异可能是由预分配或目录收缩引起的。如果你用xfs_db
( )查看你的文件系统xfs_db -r /dev/...
,你可以查看分配的块;例如,
$ sudo xfs_db -r ...
xfs_db> inode 16777345
xfs_db> print
[...]
u3.bmx[0-3] = [startoff,startblock,blockcount,extentflag]
0:[0,1052355,1,0]
1:[1,1094509,1,0]
2:[2,1094191,1,0]
3:[8388608,1052431,1,0]
[...]
(inode
上面的命令对于您的系统来说是正确的,但您的输出会有所不同。)
这是来自大小为 12,288 字节但已分配大小为 16,384 字节(由 报告的 32 个块stat
)的目录。这显示为三个数据块(起始偏移量 0、1、2)和一个额外块(起始偏移量 8388608),它是“空闲列表”的一部分,IE分配给目录但未被目录数据使用的块。