为啥du命令用不同的-block-size结果不一样

为什么du命令用不同的--block-size结果不一样?
就以du这一命令为例,我相信其他命令也一样
[root@www ~]# du -s;du -sb
1692    .    //这行是KB
1465375 .    //这行是byte

1692*1024=1732608,完全不是1465375啊.咋回事?
还有我想问下linux怎么计算文件大小,是按文件内实际字节数来算还是看文件占用了多少个block?我知道目录刚建就有4096B
------解决思路----------------------
给楼主一个例子

$wc -c h
238 h

$stat h
  File: `h'
  Size: 238             Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d      Inode: 4984583     Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/  )   Gid: ( 1000/ )
Access: 
Modify: 2013-01-12 20:06:28.292125094 -0500
Change: 2013-01-12 20:06:28.292125094 -0500
 Birth: -

$du -h h
4.0K    h

$du -bh h
238     h

du -b 的情况下是输出 stat 里面的 Size
其他情况下, size按照 stat的Blocks(8) * 512 / 1024 =4K 来计算

楼主可以自己试下