近期在学习中偶然发现:ls -h du -sh的大小显示不一致具体如下
[root@localhost ~]# ll -h
总用量 20K
-rw-r--r--. 1 root root 3.8K 1月 7 08:17 1.txt
-rw-------. 1 root root 1.4K 4月 27 2020 anaconda-ks.cfg
-rw-r--r--. 1 root root 8.5K 1月 7 08:20 top.txt
[root@localhost ~]# du -sh *
4.0K 1.txt
4.0K anaconda-ks.cfg
12K top.txt
通过详细了解后发现,du == disk usage 属于磁盘使用量 占用的磁盘空间
不同之处
du 指这个文件在磁盘中占用了多少空间,计算占用了多少block块,而block块的大小默认为4096也就是4k,当你一个文件大小为1字节的文件,他也要占用4k。如果你的系统块大小制定为16k,即便你放入一个1k的文件,也显示你占用16k。
所以在一个分区存在大文件的时候block的值可以设置大一点,有利于空间利用。存放的比较小的文件即可块大小设置小一点。
结论
通产情况下,ls显示的文件大小是要比du显示的磁盘占用空间是小的。
查看block块的大小
[root@localhost ~]# xfs_growfs /dev/sda1
meta-data=/dev/sda1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=262144, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
dumpe2fs -h 分区路径
我们在查看指定分区详细文件信息时,用dumpe2fs 时却发现报错,
dumpe2fs: Bad magic number in super-block 当尝试打开 /dev/sda1 时找不到有效的文件系统超级块.
这个是因为在安装CentOS7时,根分区默认使用的文件系统类型是xfs,而7以前的版本如6使用的是ext4类型。