免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8088 | 回复: 16
打印 上一主题 下一主题

多级目录统计文件总和大小 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-04-18 14:55 |只看该作者 |倒序浏览
a目录下大约有19G左右的文件,a下有 b c d目录,b 下有 d e f g h i,c下有 g  x y, d下有 m n z 大约目录深度有 20多级;
du -sh *
find |xargs
这样单一考虑肯定没有太多的优势

大家给个高效的算法;

论坛徽章:
0
2 [报告]
发表于 2008-04-18 15:06 |只看该作者
ls -lR|awk 'NF>3{a+=$5}END{print a}'

如果-lR支持20多级的话,我知道tar好像超过13级就搞不定了。

论坛徽章:
0
3 [报告]
发表于 2008-04-18 15:17 |只看该作者
原帖由 welcome008 于 2008-4-18 15:06 发表
ls -lR|awk 'NF>3{a+=$5}END{print a}'

如果-lR支持20多级的话,我知道tar好像超过13级就搞不定了。


[root@lfile data]# time ls -lR
real    22m27.112s
user    0m1.390s
sys     0m2.890s

到这里还没有显示三分之一呢,而且都显示完管道给awk
效果不太理想

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2008-04-18 15:23 |只看该作者
原帖由 webyuhang 于 2008-4-18 14:55 发表
a目录下大约有19G左右的文件,a下有 b c d目录,b 下有 d e f g h i,c下有 g  x y, d下有 m n z 大约目录深度有 20多级;
du -sh *
find |xargs
这样单一考虑肯定没有太多的优势

大家给个高效的算法;

不太明白楼主什么意思?如果要统计所有文件的话,脚本肯定比不上C语言编写的du;如果要统计其中部分文件的话welcome008的awk就很好了。

论坛徽章:
0
5 [报告]
发表于 2008-04-18 15:53 |只看该作者
原帖由 woodie 于 2008-4-18 15:23 发表

不太明白楼主什么意思?如果要统计所有文件的话,脚本肯定比不上C语言编写的du;如果要统计其中部分文件的话welcome008的awk就很好了。

woodie老师
我是想把所有的文件都统计出来计算大小;
因为目录N多,深度N多级别
所以du -sh 非常的慢。

welcome088的兄弟,我测试了。因为ls -lR光执行这个命令就要很久,况且还要这个执行完毕管道给awk来执行啊。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2008-04-18 16:15 |只看该作者
原帖由 webyuhang 于 2008-4-18 15:53 发表

woodie老师
我是想把所有的文件都统计出来计算大小;
因为目录N多,深度N多级别
所以du -sh 非常的慢。

welcome088的兄弟,我测试了。因为ls -lR光执行这个命令就要很久,况且还要这个执行完毕管道给aw ...


所有的文件的话,我怕找不出比du更快的工具了。解释性的脚本语言在性能上无论如何无法和机器代码相提并论。

或许你可以从另一个方向试试。比如:先计算出目标文件系统上不在统计的范围之内的文件的总大小,再从df中得到已经使用的磁盘空间,从中减去前者。结果可能比较粗略一点,而且不一定适合你的具体情况,仅供参考。

论坛徽章:
0
7 [报告]
发表于 2008-04-18 18:01 |只看该作者
原帖由 woodie 于 2008-4-18 16:15 发表


所有的文件的话,我怕找不出比du更快的工具了。解释性的脚本语言在性能上无论如何无法和机器代码相提并论。

或许你可以从另一个方向试试。比如:先计算出目标文件系统上不在统计的范围之内的文件的总大小 ...

恩,我就是这样计算出来的。。。。
其实,我就是想要一种高效的查询方法;毕竟CU高手如云。
呵呵

论坛徽章:
0
8 [报告]
发表于 2008-04-19 15:16 |只看该作者
期待高人出现

论坛徽章:
0
9 [报告]
发表于 2008-04-21 13:56 |只看该作者
畅听大家的想法,出来讨论啊。

论坛徽章:
0
10 [报告]
发表于 2008-04-21 14:03 |只看该作者
好像没有更好的办法了。
我帮你顶一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP