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 <文件名称> -h
du
命令,查看文件夹大小
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 -ns
size降序:
du -s * | sort -nr
只显示一部分du
的结果
如果参与排序的数量较多,您可能还需要下面的命令。
(降序)选出排在前面的10个:
du -s <路径> | sort -rn | head
(降序)选出排在后面的10个:
du -s <路径> | sort -nr | tail
屏幕能显示多少条(降序)就显示多少条(降序),然后<enter>
继续显示下一屏。
du -s <路径> | sort -nr | more
du
计算合计值
重点就是参数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
的相关经验文章,请点击下面的链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。