免费注册 查看新帖 |

Chinaunix

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

find 命令占用太多资源? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-16 08:47 |只看该作者 |倒序浏览
有一个命令

find . -mtime +1 -exec compress {} \; 2>/dev/null

但是因为找出的文件非常多(过万), 然后每次都要处理很久的时间.
另外,如果find到了一个文件A, 但是会不会有可能在compress这个动作之前删除? (有自动删除的script)
如果被删除,find是不是就会死在那里?
对于这种可以寻早到非常多文件的情况下,怎样替代这个命令会好点?
而且可以做到如果遇到文件已经不存在就跳过?

论坛徽章:
0
2 [报告]
发表于 2007-11-16 09:02 |只看该作者
在使用f i n d命令的- e x e c选项处理匹配到的文件时, f i n d命令将所有匹配到的文件一起传递
给e x e c执行。不幸的是,有些系统对能够传递给e x e c的命令长度有限制,这样在f i n d命令运行
几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是
x a rg s命令的用处所在,特别是与f i n d命令一起使用。F i n d命令把匹配到的文件传递给x a rg s命
令,而x a rg s命令每次只获取一部分文件而不是全部,不像- e x e c选项那样。这样它可以先处理
最先获取的一部分文件,然后是下一批,并如此继续下去。在有些系统中,使用- e x e c选项会
为处理每一个匹配到的文件而发起一个相应的进程,并非将匹配到的文件全部作为参数一次
执行;这样在有些情况下就会出现进程过多,系统性能下降的问题,因而效率不高;而使用
x a rg s命令则只有一个进程。另外,在使用x a rg s命令时,究竟是一次获取所有的参数,还是分
批取得参数,以及每一次获取参数的数目都会根据该命令的选项及系统内核中相应的可调参
数来确定。

find . -mtime +1| xargs compress   2>/dev/null

这样会不会好点 ,命令可能不对,水平有限

论坛徽章:
0
3 [报告]
发表于 2007-11-16 09:24 |只看该作者
一言惊醒梦中人~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP