Linux下du -sh 和 ls -lh显示磁盘占用不一样

系统 Linux
在Linux下查看文件大小可以用ls -lh,也可以使用du -sh *。但是有时候,命令返回的文件大小不一样,这是为什么呢?

 简介

在Linux下查看文件大小可以用ls -lh,也可以使用du -sh *。

但是有时候,命令返回的文件大小不一样,这是为什么呢?

[[379354]]

原因

du -sh *计算的是文件存储到磁盘中占用了多少空间,计算的是占了多少个block。

ls -lh 计算的是文件的实际大小。

一般来说,存储文件的时候很少刚好把block填满,因此du -sh *一般都要比ls -lh大。

但是也有一些特殊文件,例如sparse file。

[[379355]]

稀疏文件(Sparse File)

稀疏文件,这是UNIX类等文件系统的一个特性。稀疏文件与其他普通文件基本相同,区别在于文件中的部分数据是全0,且这部分数据不占用磁盘空间。

它可以延迟分配磁盘空间,特别适合虚拟机。比如分配了一个100G的文件做磁盘,在虚拟机里面识别到的就是100G的空间,但是,实际物理机只是分配至已经使用的空间。

总结

所以在清理空间的时候,使用du -sh *去查找大文件清理即可,如果遇到稀疏文件ls -lh就会误判了。

 

责任编辑:姜华 来源: 今日头条
相关推荐

2022-05-05 21:47:32

Linuxls 命令

2012-03-07 17:24:10

戴尔咨询

2012-12-20 10:17:32

IT运维

2009-12-01 16:42:27

Gentoo Linu

2011-03-14 16:51:24

2021-12-23 15:11:46

Web 3.0元宇宙Metaverse

2017-05-25 15:02:46

联宇益通SD-WAN

2016-05-09 18:40:26

VIP客户缉拿

2015-10-19 12:33:01

华三/新IT

2021-01-11 14:02:22

dudf运维

2009-11-26 13:16:25

Open Suse

2020-05-15 10:16:43

HttpHttps网络协议

2018-05-09 15:42:24

新零售

2013-01-18 16:23:27

春运订票抢票

2009-02-04 15:43:45

敏捷开发PHPFleaPHP

2021-02-15 11:32:20

Apt-getLinuxApt

2017-11-03 07:57:19

2016-03-24 18:51:40

2011-02-28 10:38:13

Windows 8

2009-06-12 15:26:02

点赞
收藏

51CTO技术栈公众号