当前位置:主页 > 查看内容

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

发布时间:2021-05-19 00:00| 位朋友查看

简介:简介 在Linux下查看文件大小可以用ls -lh,也可以使用du -sh *。 但是有时候,命令返回的文件大小不一样,这是为什么呢? 原因 du -sh *计算的是文件存储到磁盘中占用了多少空间,计算的是占了多少个block。 ls -lh 计算的是文件的实际大……

 简介

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

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


原因

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

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

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

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


稀疏文件(Sparse File)

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

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

总结

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


本文转载自网络,原文链接:https://www.toutiao.com/i6922308745405956611/
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐