ext4如何决定文件的块数?

ext4如何决定文件的块数?

我正在使用stat基本上显示索引节点信息的命令。虽然我显示的是一个小文件的信息(146 个字符),但它显示了 8 个块。我想知道这是为什么?由于页面的大小应该是 4KB,我希望这个数字是 1。顺便说一句,我使用的文件系统是 ext4。为您提供更多详细信息:

更多 tmp.sh

#DATE=$(date +"%Y%m%d_%H%M%S")
#cp /var/log/filter.log /var/log/logHistory/filter_{$DATE}.log
dd=$(date --date='-1 day' +"%Y%m%d")
rm filter_$dd*

统计tmp.sh

  File: ‘tmp.sh’
  Size: 146         Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d  Inode: 1835522     Links: 1
Access: (0664/-rw-rw-r--)  Uid: ( 1000/timestring)   Gid: ( 1000/timestring)
Access: 2016-05-05 17:34:08.251864800 -0700
Modify: 2015-01-22 20:40:18.971521274 -0800
Change: 2015-01-22 20:40:18.975521274 -0800
 Birth: -

答案1

报告的“块”stat()是 512 字节单位。 ext4 使用的正常块大小是 4kb,或者 8 个这样的“块”。这意味着 ext4 上的文件使用的空间必须是 8 个“块”的整数倍,因此任何小于或等于 4096 字节的文件使用的最小大小是 8 512 字节块。

答案2

ext4 文件系统推测创建文件时的大小。下面引用此关联:

首次创建文件时,块分配器会推测为该文件分配 8KiB 磁盘空间,假设该空间很快就会被写入。当文件关闭时,未使用的推测分配当然会被释放,但如果推测正确(通常是小文件的完整写入的情况),则文件数据将在单个多块范围中写出。

相关内容