centos如何使用du命令查看文件大小?
发布于 作者:苏南大叔 来源:程序如此灵动~
常见的linux发行版,比如centos是默认没有界面的。那么查看文件大小这种事情,就变得有些复杂了。在本文中,苏南大叔解释几个有关文件大小的命令,比如查看一组文件的大小,文件夹按大小排序,文件size显示友好的可读性等,以及如何查找文件体积大于100M的文件。涉及的命令,主要是:du/sort。
本文的实验场景是centos7.5。当然,在其它的linux发行版中,比如mac系统,本篇文章也是有一定的参考价值的。本文最核心的命令是这样的:
du -sh *如果想看更详细的内容,就可以继续本文的学习:
du命令,显示人类友好的统计信息
du <路径信息> -h这里的参数-h就是人类可读性友好的意思。du的默认返回值单位是block(大家就可以理解为数据存放的单位数量),而加上-h参数后,显示的就是大家平时所说的kb/M/G等单位了。建议大家一定使用-h参数,不过人类友好之后,这个值就不是那么准确了。
但是du命令和sort命令组合使用的时候,du命令不能添加-h参数,否则会有一定的概率出现逻辑错误。
基本使用方式
du命令主要用于查看文件大小,比如查看某个文件的size。
du <文件名称> -hdu命令,查看文件夹大小
du <文件夹名称> -h以下几种情况中,du会列出该文件夹及所有任意深度的子文件夹下所有文件的size。这个和查看某个文件名称的时候,是不同的。
du后面跟着的是一个文件夹名称du后面跟着的是当前目录.- 直接命令
du,没有其余表示位置的信息(默认就是当前目录)
du只查看一级目录size情况
新的参数是--max-depth,为了防止默认的深度循环展示,就可以使用这个参数。
du -h --max-depth=0 <目录名称路径>只查看当前子目录的情况: du -sh *。
看起来是有些绕,下面来对比一下四条命令。
du -sh <目录名称路径>
du -sh * <目录名称路径>
du -h --max-depth=0 <目录名称路径>
du -h --max-depth=1 <目录名称路径>对比截图如下:
du按大小排序
这里借助另外一个命令sort进行排序,但是值得注意的是:这个时候最好不要使用du的-h参数。因为如果单位不一致的话(比如一个kb,一个M),可能就排序错误了。
size升序:
du -s * | sort -nssize降序:
du -s * | sort -nr只显示一部分du的结果
如果参与排序的数量较多,您可能还需要下面的命令。
(降序)选出排在前面的10个:
du -s <路径> | sort -rn | head(降序)选出排在后面的10个:
du -s <路径> | sort -nr | tail屏幕能显示多少条(降序)就显示多少条(降序),然后<enter>继续显示下一屏。
du -s <路径> | sort -nr | moredu计算合计值
重点就是参数c了,大家可以对比上边的du -sh *看看效果。-c参数,会在最下方增加一个total的一行数据。
du -shc *du的默认单位block到底是多少kb
这个并没有统一答案,一般来说是512k,但是也可能是1024kb,因为这个是可以修改的。所以,苏南大叔建议:您可以用du和du -h的对比结果来算算,您的系统上的一个block到底是多少kb。
当然了,网上也流传着很多如何查看本机的block的size的方法,苏南大叔试了一下后,觉得似乎并不是那么靠谱。得出的结果和计算出来的标准答案都相差较多。
苏南大叔觉得下面的这个办法比较取巧,也比较标准。不过和网上其它地方给出的答案相差较多。大家自行决定把。
df使用这个命令的时候,在苏南大叔的centos上面,这个值是1024k,在mac机上面,这个值是512k。和苏南大叔亲自计算的结果是一致的。
网上流程的各种方法,例如:tune2fs/stat/dumpe2fs等,在mac机上面不存在这些命令,在centos上面得出的结果和计算的结果不一致。
centos:
mac:
如果您使用下面这个命令,就可以查看比较详实的磁盘利用率了。
df -lh总结
linux命令行是非常有用的,熟练掌握这些命令,是可以做很多事情的。更多苏南大叔编写的centos的相关经验文章,请点击下面的链接。










