GNU bug report logs -
#10561
stat unclear about size on disk and type of blocks discussed
Previous Next
Full log
View this message in rfc822 format
Today I tried figuring out how much disk space a small file took. I used
stat, but that turned out surprisingly difficult:
> # LANG=C stat htpasswd.setup
> File: `htpasswd.setup'
> Size: 54 Blocks: 8 IO Block: 4096 regular file
> Device: 805h/2053d Inode: 5268976 Links: 1
> Access: (0640/-rw-r-----) Uid: ( 0/ root) Gid: ( 33/www-data)
> Access: 2012-01-19 15:00:58.000000000 -0500
> Modify: 2012-01-19 15:00:54.000000000 -0500
> Change: 2012-01-19 15:00:54.000000000 -0500
> Birth: -
> root <at> vinci:/etc/phpmyadmin#
The "real" size is clear, but at first I thought that didn't say the
size on disk.
There are 3 interesting format sequences:
> %b
> Number of blocks allocated (see %B)
> %B
> The size in bytes of each block reported by %b
> %o
> I/O block size
In the default format, %b is shown as "Blocks" and %o is shown as "IO
Block".
On my system, there are 2 kinds of blocks, those on the HDD, 512 bytes
each, and those of the filesystem, 4096 each. The manual's descriptions
do not make it clear which kind of block is referred to. After
verification, %b refers to HDD blocks.
I'm not sure what language should be used instead. Perhaps instead of
blocks the manual should talk about "data storage device blocks".
As for %o, if you'd ask me what "I/O block size" means without any
context, I'm far from being sure I would answer it means size on disk. I
suggest to call this Size on disk, or Size used on the filesystem.
This bug report was last modified 13 years and 185 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.