大龙的博客

常用链接

统计

最新评论

Shell统计隐藏目录的大小方法小记 --- 转

前言:今天df看到磁盘快满了,通过查看发现很多都是隐藏文件的,但是通过du又查不到隐藏目录的大小 不知道 哪些目录太大?怎么查看方便呢?

所以写了个脚本进行统计

脚本的功能,打印出指定目录下的一级目录所有隐藏目录的大小并且按M进行排序

#!/bin/bash #Author:Ajian #Date   : 2009-08-17 #website:www.ohlinux.com for i in `find $DOCUMENT -maxdepth 1 -name ".*"  -type d -print ` do   du -sm $i done | sort -n | awk '{print $1"M"," ",$2}'

后来我又减化了下到一个命令

find /root -maxdepth 1 -name ".*"  -type d -print | xargs du -sm | sort -n | awk '{print $1"M",$2}'

解説:
1、查找隐藏目录 使用find /path -name “.*” -type d -print
2、查找一级的隐藏目录添加上 -maxdepth 1
3、对目录进行以M兆的统计 du -sm
4、对大小进行排序 默认以第一列 sort -nr (r是反向排序)
5、awk 在这里进行修饰了下因为du -sm 是没有显示单位的 用du -sh 有单位但增加了排序的麻烦
6、 脚本和命令的书写区别 因为脚本用的for 语句是分条读入的所以如果把sort -n | awk ‘{print $1″M”,” “,$2}’ 放到 du -sm $i 之后不会对顺序产生变化,因为每次就对一条进行排序肯定最后的结果是没有影响的 而命令是用管道的方式 每次都是一批处理完后交给后面进行 注意脚本和命令的区别。

结果:

13M   /root/.opera 13M   /root/.svnqt 15M   /root/.cpan 16M   /root/.mplayer 78M   /root/.tencent 100M   /root/.config 116M   /root/.VirtualBox 158M   /root/.icons 160M   /root/.google 218M   /root/.kde4 258M   /root/.mozilla 517M   /root/.thumbnails 650M   /root/.beagle

posted on 2013-06-21 18:01 大龙 阅读(476) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理