linux查看文件大小 ---- du -sh * 与 ls -lh

本文解释了在Linux环境下,du-sh*和ls-lh命令显示文件大小不一致的原因。du计算的是文件在磁盘上占用的块大小,而ls显示的是文件的实际大小。文件系统块大小、稀疏文件的存在等因素会导致两者差异。清理空间时推荐使用du,对于稀疏文件,ls可能产生误判。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:du -sh * 与 ls -lh 显示文件大小不一样

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

两者的概念:

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

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

du 显示的是文件占block大小,ls 是实际文件大小;

        一个文件占用的磁盘空间和一个文件的大小是两码事情。占用空间取决于文件系统的块(block)的大小,linux一般默认是4k(4096) 。因此,一个大小为1个字节的文件,最小也要占用4k;如果你创建文件系统的时候制定块大小是16K,那么即便一个文件只有1个字节,占用空间也是16K。如果一个分区上主要放大文件,那么block可以大一些,有利于减少磁盘碎片,如果主要放小文件,那么block设置小一下,否则太浪费磁盘空间。

        通常情况下,ls 显示的文件大小比du显示的磁盘占用空间小,比如文件系统的block是4K,一个13K的文件占用的空间是 13k/4k = 3.25 个block,一个block只能被一个文件占用,因此实际占用空间就是4个block,就是16K;  一般来说,存储文件的时候很少刚好把block填满,因此du -sh *一般都要比ls -lh大。 但是也有一些特殊文件,例如sparse file。

稀疏文件(Sparse File)

        稀疏文件,这是UNIX类等文件系统的一个特性。稀疏文件与其他普通文件基本相同,区别在于文件中的部分数据是全0,且这部分数据不占用磁盘空间。它可以延迟分配磁盘空间,特别适合虚拟机。比如分配了一个100G的文件做磁盘,在虚拟机里面识别到的就是100G的空间,但是,实际物理机只是分配至已经使用的空间。

总结

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

使用"df -h"命令可以在Linux查看磁盘空间的使用情况,其中"-h"选项表示以人类可读的方式显示磁盘空间的大小,以便更易于理解。该命令读取分区的超级块信息获取分区使用情况,输出结果包括每个分区的挂载点、总空间、已使用空间、剩余空间和使用率等信息。 而"du -s"命令用于查看指定文件或目录的磁盘使用空间。其中"-s"选项表示只显示总和,即只显示指定文件或目录的总大小,而不显示具体的文件大小。该命令输出结果以字节为单位,并且默认只显示最后一个级别的目录或文件的大小。 总结起来,"df -h"用于查看分区的整体磁盘空间使用情况,而"du -s"用于查看特定文件或目录的磁盘使用空间。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [df -h和du -sh显示的磁盘空间不一致分析](https://blog.csdn.net/weixin_28788593/article/details/116969248)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [一天一个shell命令 linux好管家-磁盘-du命令详解](https://download.csdn.net/download/weixin_38625448/14892833)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值