概要

主要用到了以下几个命令:du disk usage查看磁盘使用情况、find 查找文件、sort 排序命令

、head 显示top N的命令。

查看占用情况

查看自己的home磁盘使用率:

pichu@Archer ~ $ df -h

文件系统 容量 已用 可用 已用% 挂载点

udev 7.8G 0 7.8G 0% /dev

tmpfs 1.6G 9.4M 1.6G 1% /run

/dev/sda7 28G 15G 12G 56% /

tmpfs 7.8G 360M 7.4G 5% /dev/shm

tmpfs 5.0M 4.0K 5.0M 1% /run/lock

tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup

/dev/sda1 496M 60M 437M 12% /boot/efi

/dev/sdb3 99G 66G 29G 70% /home

tmpfs 1.6G 12K 1.6G 1% /run/user/1000

可看到100G的/home分区已经用了70%了,还剩29G。

-h:human-readable,以人类可读的方式显示,即显示为K、M、G等单位。一般-h都是显示help,但是和大小相关的一般都是以人类可读的方式输出大小。

home下也就我一个人在用,所以65个G全是我占用的。

pichu@Archer ~ $ du -hd 1 /home

65G /home/pichu

65G /home

-h:human-readable,同上。

-d, –max-depth=N:目录的层数。

所以这里的意思是,只查看/home下一层目录深度,并以人类可读的方式输出大小。

下面才是关键:找出那些最占空间的文件。

最大文件夹top10

最大的文件夹top10:

pichu@Archer ~ $ du -h ~ | sort -hr | head -10

65G /home/pichu

34G /home/pichu/VirtualBox VMs/Win7

34G /home/pichu/VirtualBox VMs

8.3G /home/pichu/.IntelliJIdea2017.3

8.2G /home/pichu/.IntelliJIdea2017.3/system

4.9G /home/pichu/.IntelliJIdea2017.3/system/index

3.8G /home/pichu/Codes/Java

3.8G /home/pichu/Codes

3.7G /home/pichu/.m2/repository

3.7G /home/pichu/.m2

sort:

-r, –reverse:逆序排列。本来对数字排序应该是1在前,2在后,现在反过来了。

-h, –human-numeric-sort:既然显示文件大小的命令,-h代表人类可读的方式输出文件大小,那么sort命令自然是以人类可读的数字去排序。

head:

-n, –lines=[-]NUM:输出多少行。-n 10等价于-10。

所以命令的意思就是显示home下所有文件的大小,并逆序排列,最后显示top10。

如果sort不加-h:

pichu@Archer ~ $ du -h ~ | sort -r | head -10

9.9M /home/pichu/.m2/repository/org/apache/hadoop/hadoop-yarn-server-resourcemanager/2.7.1

9.9M /home/pichu/.m2/repository/org/apache/hadoop/hadoop-yarn-server-resourcemanager

9.9M /home/pichu/.ivy2/cache/toolbox/text-tools/zips

9.9M /home/pichu/.ivy2/cache/external/findbugs/zips

99M /home/pichu/.atom/packages/markdown-pdf/node_modules

99M /home/pichu/.atom/packages/markdown-pdf

996K /home/pichu/.m2/repository/org/apache/commons/commons-math/2.2

可看到排名前几的竟然才9.9M,而65G的/home/pichu竟然榜上无名。这是因为没了-h,sort单纯按照数字大小排序。所以du和sort需要同时用-h(或者同时不用)。

结论

根据输出结果,可看到最大的文件夹是65G的/home/pichu,其次是放置了windows7虚拟机的文件夹。紧接着,编程IDE intellij idea占用空间较大,看目录得知是idea构建的索引的大小。所以说,之所以用idea编程这么方便,是因为它背后默默地做了相当多的工作。

然后我的代码目录占了3.8G。想想应该主要是有很多工程用的ant+ivy,这些工具必须将依赖resolve到代码工程里,这些依赖应该是占这么大空间的主要原因。(如果单靠代码占了3.8G,那是有点儿够疯狂了)

最后,占top10的是本地maven仓库3.7G。这点比较符合情理。

但是,结果并非尽如人意。首先,第一条信息是无效的,因为家目录包含了其他所有的目录,它肯定是最大的。而且/home/pichu/.IntelliJIdea2017.3之所以能排到第四,纯粹因为其子目录system有8.2G,跟它本身大小并没有什么关系。同理,/home/pichu/Codes之所以能排进前十,也全靠它的子目录/home/pichu/Codes/Java的大小。所以这种排序方式还是产生了一些无意义的排名。

因此,按照文件夹大小排序有一定的效果,但还需结合其他方式。

最大独立文件夹top10

如果能够看到某文件夹自己本身的大小,而不包含其子文件夹的大小,就不会出现上述不足之处了。

最大文件夹top10(不包含子文件夹的大小):

pichu@Archer ~ $ du -Sh ~ | sort -hr | head -10

34G /home/pichu/VirtualBox VMs/Win7

2.7G /home/pichu/.IntelliJIdea2017.3/system/index/trigram.index

2.6G /home/pichu/.IntelliJIdea2017.3/system/Maven/Indices/Index5/data0/context

2.0G /home/pichu/Public/windows

1.1G /home/pichu/.local/share/Trash/files

1.0G /home/pichu/.cache/netease-cloud-music/CachedSongs

865M /home/pichu/Pictures

579M /home/pichu/.IntelliJIdea2017.3/system/caches

579M /home/pichu/Downloads

572M /home/pichu/Codes/Java/uni-server/lib

-S, –separate-dirs:仅显示该目录除掉子目录之后的大小。

结论

这么排序的结论就比较有说服力了。排第一的是windows7所在的文件夹。其后是idea的一些配置文件夹的大小。然后是1.1G的trash文件(这个就是可以删除的)。接着是网易云音乐的cache文件、idea的cache、下载的一些内容、某工程代码的lib目录(就是之前说的ant+ivy必须把代码的依赖resolve本到工程下,所以才导致Code目录有3.8G)。

因此我们可以删掉trash文件,删除cache等,清理出一部分磁盘空间。

当然这么排序也有一些不足的地方,比如只能看到idea的配置文件夹下的 system/index/trigram.index 和 system/Maven/Indices/Index5/data0/context 比较占空间,但是整个.IntelliJIdea2017.3究竟占多大空间就不清楚了,这个信息可以在上文的排序方式中看到。因此这两种排序方式都有其存在的价值。

最大文件top10

除了看文件夹的大小,我们当然也很想找出最占空间的那些单文件。

最大文件top10:

pichu@Archer ~ $ find ~ -type f -exec du -h {} + | sort -rh | head -10

34G /home/pichu/VirtualBox VMs/Win7/Win7_2rd.vdi

2.7G /home/pichu/.IntelliJIdea2017.3/system/index/trigram.index/Trigram.Index.storage.values

2.6G /home/pichu/.IntelliJIdea2017.3/system/Maven/Indices/Index5/data0/context/_77.cfs

1.1G /home/pichu/Public/windows/SW_DVD5_Office_Professional_Plus_2016_64Bit_ChnSimp_MLF_X20-42426.ISO

929M /home/pichu/.local/share/Trash/files/java_error_in_IDEA.hprof

921M /home/pichu/Public/windows/Office_Professional_PlusVL_2010_x64_Activated.iso

338M /home/pichu/.IntelliJIdea2017.3/system/caches/content.dat.storageData

334M /home/pichu/tmp/CLion-2018.1.6.tar.gz

279M /home/pichu/Utils/druid/druid-0.11.0/log/log-coordinator

220M /home/pichu/Utils/druid/druid-0.11.0-bin.tar.gz

linux sort 算法_linux 文件大小排序相关推荐

  1. Linux 文件夹和文件大小排序

    Linux 文件夹和文件大小排序 文件夹排序 du -k | sort -rn 文件排序 ls -lS -r, –reverse 依相反次序排列 -R, –recursive 同时列出所有子目录层 - ...

  2. linux sort 多列去重排序,【Linux】sort排序、uniq去重、wc统计

    文章目录 一.sort 排序 1.语法 2.参数说明 3.实例 二.uniq 去重 1.uniq使用 2.sort和uniq去重结果对比 三.wc 统计 一.sort 排序 sort命令用于 对文本文 ...

  3. C语言实现臭皮匠排序stooge sort 算法(附完整源码)

    臭皮匠排序stooge sort 算法 臭皮匠排序stooge sort 算法的完整源码(定义,实现,main函数测试) 臭皮匠排序stooge sort 算法的完整源码(定义,实现,main函数测试 ...

  4. C语言鸽巢排序pigeonhole sort算法(附完整源码)

    鸽巢排序pigeonhole sort算法 鸽巢排序pigeonhole sort算法的完整源码(定义,实现,main函数测试) 鸽巢排序pigeonhole sort算法的完整源码(定义,实现,ma ...

  5. linux传送多个文件大小,linux统计多个文件大小总和

    首先:查看当前文件夹大小的命令是: [root@host1 test]# du -sh 39M. 查看当前文件夹下所有文件的大小: [root@host1 test]# du -sh * 108Kco ...

  6. linux磁盘文件排序 hdfs文件大小排序 sed正则匹配

    linux下文件大小排序 hdfs文件系统中的文件大小排序 文章目录 前言 一.本地磁盘文件排序 二.hdfs文件排序 总结 前言 在工作和学习中,我们经常需要做一些简单的运维工作,其中最为典型的就是 ...

  7. linux sort 源码_Linux: 史上最全的sort命令案例,打包带走吧

    一. 介绍 sort命令是用来对文字内容(文档)排序使用的.同时也可以排序去重.指定字段排序,按照月份排序.按照数字排序,检查文件是否有序等等.默认情况是按照字典序排序以后标准输出到屏幕上,但是该命令 ...

  8. 经典排序算法 - 鸽巢排序Pigeonhole sort

    经典排序算法 - 鸽巢排序Pigeonhole sort 原理类似桶排序,同样需要一个很大的鸽巢[桶排序里管这个叫桶,名字无所谓了] 鸽巢其实就是数组啦,数组的索引位置就表示值,该索引位置的值表示出现 ...

  9. linux下sort命令使用详解---linux将文本文件内容加以排序命令

    转载自:http://www.cnblogs.com/hitwtx/archive/2011/12/03/2274592.html linux下sort命令使用详解---linux将文本文件内容加以排 ...

最新文章

  1. PCL点云特征描述与提取(2)
  2. skiplist跳表的 实现
  3. Python中的变量作用域
  4. linux删除缓存脚本,Linux 设置定时清除buff/cache的脚本
  5. 移植uboot第八步:裁剪、修改默认参数、分区
  6. 贾跃亭自觉“无辜”;《绝地求生》外挂案件逮捕 34 人;VS Code 1.29 发布! | 极客头条...
  7. Linux应用开发视频教程
  8. 电赛公开课整理(二),电路基础,截图+模电知识【16000字】【原创】
  9. python将文本文件加密后输出_【Python】python文件或文本加密(4种方法)
  10. IE浏览器被挟持怎么办,打不开正确网页被挟持到固定网页
  11. android 双向进度条,Android自定义双向进度条
  12. B+树数据库加锁历史
  13. python3卸载_python3卸载
  14. 协同工作平台功能说明书
  15. 因果推断, 因果效应概述
  16. 计算机英语教学设计反思,小学五年级英语教学设计与反思
  17. 51单片机基础理论知识(会补充)
  18. Mal-PEG3-acid,518044-40-1亲水性PEG间隔物增加了在水介质中的溶解度
  19. 有关meta learning 要读的论文清单
  20. 【C#】身份证识别(三):身份证信息识别

热门文章

  1. 雾计算、边缘计算区别和联系
  2. C++倒计时制作教程
  3. c语言 checksum,容易被忽视的IP报头中的Checksum校验和
  4. 海外邮箱注册微信的简单吗
  5. opencv自带的训练器
  6. 郭盛华公司211万收购AI域名, 只为抢占人工智能市场
  7. react 中使用Swiper轮播图插件
  8. 2021届秋招哈啰出行前端面经(一面)
  9. 软件测试webtours飞机票bug档案,【松勤软件性能测试】Web Tours无法打开,怎么办?...
  10. WPS Office之Word文字进阶技能应用-陈慧-专题视频课程