当前位置: 技术问答>linux和unix
为什么du命令用不同的--block-size结果不一样?
来源: 互联网 发布时间:2017-05-30
本文导语: 就以du这一命令为例,我相信其他命令也一样 [root@www ~]# du -s;du -sb 1692 . //这行是KB 1465375 . //这行是byte 1692*1024=1732608,完全不是1465375啊.咋回事? 还有我想问下linux怎么计算文件大小,是按文件内实际字节...
就以du这一命令为例,我相信其他命令也一样
1692*1024=1732608,完全不是1465375啊.咋回事?
还有我想问下linux怎么计算文件大小,是按文件内实际字节数来算还是看文件占用了多少个block?我知道目录刚建就有4096B
[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 来计算
楼主可以自己试下
$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 来计算
楼主可以自己试下