我遇到过这样一个场景:我创建了一个只有一个ASCII字母的简单纯文本文件:a。我用stat
检查了文件大小,这是我得到的:
$ stat file
File: 'file'
Size: 1 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 433312 Links: 1
...many details...
Blocks: 8
报告的 stat
是分配的块数。为什么具有1字节大小文件的文件占用8个块,每个块的大小为4096字节?
假设我正确读取了stat
的结果,这意味着文件系统共享块中的其他不同文件,因为占用4096 * 8空间的1字节文件太多,不是吗?基本上,单独占用1字节文件的8个块是什么?
编辑:
这个问题澄清了许多概念:How does stat command calculate the blocks of a file?
然后每个块以512字节分配,1字节文件消耗512 * 8 = 4096的物理存储。这是否意味着实际上只有一个块用于存储1个字节,因为每个块是512个字节该块不会被完全使用,其余7个块将为空,但仍保留为1字节文件?
stat
报告的I / O块是4096,那么4096是用于从磁盘读取和写入磁盘的最佳字节块?这表明I / O操作一次读取8个大小为512字节的块,对吗?
至少对于硬盘驱动器,物理块总是512字节,这是正确的吗?