Arrogant-vip 发表于 2022-7-16 22:43:20

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

du -sh 与ll -h看到的文件大小不一致是什么原因?我去面试被问到一个这样的问题 。我回来测试的确有这种情况。请问正确答案是?



闪电迈坤 发表于 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
如图所示下注意标注:




页: [1]
查看完整版本: du -sh 与ll -h看到的文件大小不一致是什么原因?