我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

常见的linux发行版,比如centos是默认没有界面的。那么查看文件大小这种事情,就变得有些复杂了。在本文中,苏南大叔解释几个有关文件大小的命令,比如查看一组文件的大小,文件夹按大小排序,文件size显示友好的可读性等,以及如何查找文件体积大于100M的文件。涉及的命令,主要是:du/sort

苏南大叔:centos如何使用du命令查看文件大小? - centos-du
centos如何使用du命令查看文件大小?(图13-1)

本文的实验场景是centos7.5。当然,在其它的linux发行版中,比如mac系统,本篇文章也是有一定的参考价值的。本文最核心的命令是这样的:

du -sh *

如果想看更详细的内容,就可以继续本文的学习:

du命令,显示人类友好的统计信息

du <路径信息> -h

这里的参数-h就是人类可读性友好的意思。du的默认返回值单位是block(大家就可以理解为数据存放的单位数量),而加上-h参数后,显示的就是大家平时所说的kb/M/G等单位了。建议大家一定使用-h参数,不过人类友好之后,这个值就不是那么准确了。

但是du命令和sort命令组合使用的时候,du命令不能添加-h参数,否则会有一定的概率出现逻辑错误。

苏南大叔:centos如何使用du命令查看文件大小? - 错误的sort组合
centos如何使用du命令查看文件大小?(图13-2)

基本使用方式

du命令主要用于查看文件大小,比如查看某个文件的size。

du <文件名称> -h
  • du命令,查看文件夹大小
du <文件夹名称> -h

以下几种情况中,du会列出该文件夹及所有任意深度的子文件夹下所有文件的size。这个和查看某个文件名称的时候,是不同的。

  • du后面跟着的是一个文件夹名称
  • du后面跟着的是当前目录.
  • 直接命令du,没有其余表示位置的信息(默认就是当前目录)

苏南大叔:centos如何使用du命令查看文件大小? - du_文件夹
centos如何使用du命令查看文件大小?(图13-3)

du只查看一级目录size情况

新的参数是--max-depth,为了防止默认的深度循环展示,就可以使用这个参数。

du -h --max-depth=0 <目录名称路径>

苏南大叔:centos如何使用du命令查看文件大小? - du_depth
centos如何使用du命令查看文件大小?(图13-4)

只查看当前子目录的情况: du -sh *

看起来是有些绕,下面来对比一下四条命令。

du -sh <目录名称路径>
du -sh * <目录名称路径>
du -h --max-depth=0 <目录名称路径>
du -h --max-depth=1 <目录名称路径>

对比截图如下:

newsn.net:这里是【评论】可见内容

du按大小排序

这里借助另外一个命令sort进行排序,但是值得注意的是:这个时候最好不要使用du-h参数。因为如果单位不一致的话(比如一个kb,一个M),可能就排序错误了。

size升序:

du -s * | sort -ns

苏南大叔:centos如何使用du命令查看文件大小? - sort_ns
centos如何使用du命令查看文件大小?(图13-6)

size降序:

du -s * | sort -nr

苏南大叔:centos如何使用du命令查看文件大小? - sort_nr
centos如何使用du命令查看文件大小?(图13-7)

只显示一部分du的结果

如果参与排序的数量较多,您可能还需要下面的命令。

(降序)选出排在前面的10个:

du -s <路径> | sort -rn | head

苏南大叔:centos如何使用du命令查看文件大小? - head
centos如何使用du命令查看文件大小?(图13-8)

(降序)选出排在后面的10个:

du -s <路径> | sort -nr | tail

苏南大叔:centos如何使用du命令查看文件大小? - tail
centos如何使用du命令查看文件大小?(图13-9)

屏幕能显示多少条(降序)就显示多少条(降序),然后<enter>继续显示下一屏。

du -s <路径> | sort -nr | more

苏南大叔:centos如何使用du命令查看文件大小? - more
centos如何使用du命令查看文件大小?(图13-10)

du计算合计值

重点就是参数c了,大家可以对比上边的du -sh *看看效果。-c参数,会在最下方增加一个total的一行数据。

du -shc *

苏南大叔:centos如何使用du命令查看文件大小? - du_shc
centos如何使用du命令查看文件大小?(图13-11)

du的默认单位block到底是多少kb

这个并没有统一答案,一般来说是512k,但是也可能是1024kb,因为这个是可以修改的。所以,苏南大叔建议:您可以用dudu -h的对比结果来算算,您的系统上的一个block到底是多少kb

当然了,网上也流传着很多如何查看本机的block的size的方法,苏南大叔试了一下后,觉得似乎并不是那么靠谱。得出的结果和计算出来的标准答案都相差较多。

苏南大叔觉得下面的这个办法比较取巧,也比较标准。不过和网上其它地方给出的答案相差较多。大家自行决定把。

df

使用这个命令的时候,在苏南大叔的centos上面,这个值是1024k,在mac机上面,这个值是512k。和苏南大叔亲自计算的结果是一致的。

网上流程的各种方法,例如:tune2fs/stat/dumpe2fs等,在mac机上面不存在这些命令,在centos上面得出的结果和计算的结果不一致。

centos:

苏南大叔:centos如何使用du命令查看文件大小? - centos_df
centos如何使用du命令查看文件大小?(图13-12)

mac:

苏南大叔:centos如何使用du命令查看文件大小? - mac_df
centos如何使用du命令查看文件大小?(图13-13)

如果您使用下面这个命令,就可以查看比较详实的磁盘利用率了。

df -lh

总结

linux命令行是非常有用的,熟练掌握这些命令,是可以做很多事情的。更多苏南大叔编写的centos的相关经验文章,请点击下面的链接。

https://newsn.net/tag/centos/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   centos    du