当前位置:  技术问答>linux和unix

菜鸟求助一个文件系统问题,请老鸟给予帮助

    来源: 互联网  发布时间:2017-04-24

    本文导语:  正在看鸟哥linux私房菜,看到一个文件系统的问题怎么想也想不通,查了好多资料没有得到帮助,所以在此发贴,请老鸟给予帮助,一个文件的大小为255bytes,可以占用了系统8K的空间,块格式化是4K的大小,所以一直...

正在看鸟哥linux私房菜,看到一个文件系统的问题怎么想也想不通,查了好多资料没有得到帮助,所以在此发贴,请老鸟给予帮助,一个文件的大小为255bytes,可以占用了系统8K的空间,块格式化是4K的大小,所以一直想不得为什么会占用两个块

|

ls -s 所用的块大小和内存页块大小不是同一个值,可以用ls --block-size=4096指定块大小为4k
上图crontab的那个2指的是硬链接数。
第一个数字8才是块大小,内存页如果是4k,这时ls所认为的块大小应该是512字节。使用ls --block-size=4096,这个8就会变成1

|
ls -lsh可以看到实际占用大小。

如果不加-h参数,看到的size是以block为单位的。而ls的block的单位,可能不同的系统不一样,我的试验结果是,ls的block大小为1.0K (Ubuntu 13.04 x86_64)

man 2 stat可看到一个struct stat的结构,里面可能有一个st_blocks的成员,表示以512B为单位的block数,可能有一个st_blksize的成员,表示系统I/O的block大小。

|
2楼说的硬链接数是正确的但是有引进了另一个失误;
文件权限前面的数字的block是指1K的block 但是这个1k的block在硬件上是指1K
但是在文件系统中block的大小还是4K。也即是说这个block名词有两个意思第一个是linux最小的存储单位1K另外一个意思是文件系统的block大小一般是1k、2k、4k,但是我们现在用的CentOS5.x+都是默认block=4K(文件系统中),我们在df命令中得到的是物理block大小,ll也是物理block大小。我们文件系统block大小可以用命令# /sbin/tune2fs -l /dev/sda1 查看
http://linux.chinaunix.net/techdoc/system/2007/10/26/970731.shtml

|

这是你试验(加上-h选项)得出的结论吗?如果是那就对了

我曾经写过自己的命令,而块的个数,我是用的struct stat里的st_blocks,而这个值与ls的值对不上,所以我对ls的-s给出的块数不信任,我也不知道ls的block的单位的依据是什么,从何而来。

5楼的回复最后一句话更正为“表示文件系统I/O的block大小”。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,