资讯专栏INFORMATION COLUMN

【Linux】使用du、df 和 sort 命令快速找出Linux系统中的大文件

MrZONT / 2266人阅读

在性能测试中,我们经常要关注系统磁盘空间,防止因磁盘空间占满而导致的报错,那么具体怎么查看磁盘空间的大小呢?怎么找到占用空间最大的文件呢?

使用df、du并结合sort,可以快速找到系统中的大文件

一、df 和 du 两者区别 1、df---disk free

可以快速获取 磁盘 被占用了多少空间,目前还剩下多少空间等信息。

2、du---disk usage

显示磁盘空间的使用情况,统计 目录(或文件)所占磁盘空间的大小。

是不是感觉字面看起来没啥区别呀?哈哈,实际有很多不同哦

3、df 和 du 的不同点:

(1)统计的范围不同

df 是从总体上统计系统各磁盘的占用情况,不能统计具体的文件夹或文件的大小。

du 既可以从总体上统计,又可以统计具体的某个文件夹或文件的大小。

(2)计算方式不同,计算速度不同

df 通过文件系统来快速获取空间大小的信息,速度快,效率高

du 通过逐级进入指定目录的每一个子目录,逐个计算每个文件大小并相加,最终显示出来。
所以计算速度慢,当文件目录较多文件较大时要等很久很久!!
而且因为要进入每个子目录计算文件大小,如果当前用户对某些文件/夹没有访问权限时,无法进行计算。

(3)计算结果的差异

df  可以获取已经删除的文件。
由于df是通过文件系统来获取空间大小的,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,
当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件。
所以当一个文件刚删除清空没完全释放时,df 仍会把它计算在内。
(当你删除一个大文件前后可以分别用df 命令查看一下,刚删除时还在占用磁盘空间)

du 只能看到当前存在的、没有被删除的文件。
他计算的大小就是当前他认为存在的所有文件大小的累加和。


当文件系统也确定删除了该文件后,这时候du与df 的结果就一致了。
所以在这一点上,可以说du 计算更精确,也可以说df 计算有延迟,根据个人情况使用就行。
二、df 命令 1、df -h
(-h参数使结果以K,M,G为单位,提高信息的可读性)  
[app@VM_18_18_centos jjingli]$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/vda1              20G   15G  4.3G  78% /
/dev/vdb              118G  100G   13G  89% /data

默认显示系统所有的磁盘情况,此图中显示当前一共有两个硬盘分区,及各自的占用情况。

2、df -h 分区名
该命令可以指定显示某个分区的占用情况,用的比较少

当使用 df -h 命令看到磁盘占用较高时,需要使用 du 命令进一步查看哪些文件较大,进而删除。

三、du 命令 1、du -sh
(-h 参数同样是为了提高可读性,-s 代表summary,只显示总大小)
[app@VM_18_18_centos jjingli]$ du -sh
6.4G    

默认显示当前目录下所有文件和文件夹的总大小。

当目录下文件夹特别多时,记得不要去掉-s参数,不然会把所有文件夹下的所有文件分别列出来。

2、du -sh 目录名

du -sh 在不指定目录的情况下,默认会显示当前目录下的所有子目录的总大小。

du -sh 目录名 在指定目录的情况下,会显示指定目录下的所有文件或文件夹的大小。

du -sh *  # 显示当前目录下的所有文件和文件夹大小

du -sh /  # 显示根目录下所有的文件和文件夹大小

du -sh /data  # 显示/data目录下所有的文件和文件夹大小
3、du 和 sort 结合对文件排序
# 查看/data目录下的所有文件和文件夹大小,并从大到小排序
du -sh /data | sort -nr

这个命令对吗?
不对!因为du -sh展示的结果单位不同,但是sort排序只能针对数字,导致980KB的文件排在1GB文件的前面。
 
    
# 查看/data目录下的所有文件和文件夹大小,找出所有GB大小的文件,并从大到小排序
du -sh /data | grep G | sort -nr
    
# 这样就可以达到目的了~, 但是如果文件夹较多的话,还要一个一个的进入去找,怎么解决呢?接着看下面:

# 去掉 -s 参数,可以直接查看包括所有文件夹下的所有文件
du -h /data | grep G | sort -nr

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/35701.html

相关文章

  • Linux 基础学习笔记(一 bash shell)

    摘要:基于命令行与脚本编程大全的学习笔记更多的命令命令支持三种不同类型的命令行参数风格的参数,前面加单破折线风格的参数,前面不加破折线风格的长参数,前面加双破折线常用即为显示所有进程,显示完整的格式输出也可以在后面选择管道结束进程命令可以结 Linux(基于《Linux命令行与shell脚本编程大全》的学习笔记) 4 更多的bash shell ps 命令 ps 命令支持三种不同类型的命令...

    mochixuan 评论0 收藏0
  • linux工作实战中的常用命令

    摘要:链接中命令编辑器实战使用文章目录一常用命令二输入输出重定向三下的目录分类与作用一常用命令命令功能说明切换目录。举例命令功能说明远程安全登录方式。 链接:linux中...

    Eastboat 评论0 收藏0
  • 节省时间的那些 Linux 命令

    摘要:基础的网络管理命令或者,。使用来随机打乱一个文件中的行或者选择一个随机的行。比如,这条命令可以将重音都小写,并且去掉通过扩展并且丢掉要将文件切片,可以试试根据大小切分或者根据模式切分。前言:有网友在问答网站Quora上提问:有哪些省时小技巧,是每个Linux用户都应该知道的? Joshua Levy 平常就在 Linux 平台工作,并且他积累了不少实用命令行技巧,他在回复中精选出一部分。对...

    DoINsiSt 评论0 收藏0
  • Linux常用命令

    摘要:也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。比如安装命令的安装包,先将传到系统中。再使用如下命令安装。使用三种模式命令模式插入模式编辑模式。所以用数值表示为第八九十个字符表示其他用户权限。 命令 ctrl+shift+加号:放大终端 ctrl+减号:缩小终端 ls:显示当前路径的文件、文件夹 Linux目录结构 http://www.linuxidc.com/Li...

    233jl 评论0 收藏0
  • Linux常用命令

    摘要:也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。比如安装命令的安装包,先将传到系统中。再使用如下命令安装。使用三种模式命令模式插入模式编辑模式。所以用数值表示为第八九十个字符表示其他用户权限。 命令 ctrl+shift+加号:放大终端 ctrl+减号:缩小终端 ls:显示当前路径的文件、文件夹 Linux目录结构 http://www.linuxidc.com/Li...

    megatron 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<