请选择 进入手机版 | 继续访问电脑版
快捷导航

du -sh 与ll -h看到的文件大小不一致是什么原因?

1
回复
5305
查看
[复制链接]

5

主题

8

帖子

40

积分

新手上路

Rank: 1

积分
40
发表于 2022-7-16 22:43:20 | 显示全部楼层 |阅读模式
du -sh 与ll -h看到的文件大小不一致是什么原因?  我去面试被问到一个这样的问题 。我回来测试的确有这种情况。请问正确答案是?



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

5

主题

46

帖子

214

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
214
发表于 2022-7-16 22:49:54 | 显示全部楼层
原因是centos7的xfs文件系统磁盘格式化分区默认每个block为4k,即无论文件多小至少都要一个bolck的空间,du -sh * 看到的是磁盘实际使用,而且这个数值是4k的整数倍。ll -h看到的是文件实际大小。合理的磁盘分区要进行大小文件分区:大量存小文件的block应小一些避免磁盘浪费,大文件的bolck应大一些,避免大文件挂在多个不同block,产生过多的磁盘碎片(文件碎片)。否则会浪费过多的磁盘空间。
所以du 不是显示文件大小,而是显示文件所占用的 block 大小,默认linux系统分区的 block size 是4k,也就是说即使文件只有1个字节,也会占用4k。ls -l则是文件的实际大小

查看块大小方法是
stat -f /
blockdev --getbsz /dev/sda2
如图所示下注意标注:




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

信息推荐

更多+

最新信息

更多+

峻熙闪答-公众号

官方微信

联系我们:

15131265091

公司地址:河北省保定市竞秀区

Email:1547462309@qq.com

冀ICP备17015524号-1 &技术支持:峻熙闪答