+ -
当前位置:首页 → 问答吧 → 问一下FIND命令的问题

问一下FIND命令的问题

时间:2010-12-30

来源:互联网

请教各位老师,问题是这样的:有一个邮件服务器,她是在特定的用户目录下面按每封邮件保存成单一文件(整个系统共有几十W个邮件文件)。
现在想按月进行备份之后,再删除部分日期前的。

邮件文件保存路径结构如下:
/usr/local/mailserver/users/domain/0/11/username/cur/邮件文件名

试了下面的:
cd /
cd usr/local
touch -d 20090101 20090101
touch -d 20090201 20090201

find ./mailserver/users -mindepth 5 -type f -newer 20090101 ! -newer 20090201

能正确显示出20090101至20090201日期之间的文件

但是:find ./mailserver/users -mindepth 5 -type f -newer 20090101 ! -newer 20090201 -exec tar -vrf /tmp/mailserver_mail_200901.rar {} \;

打包时会出现其它日期范围的文件进去了

要想实现我要的目的应该如何写命令?

作者: Rove_ACER1810   发布时间: 2010-12-30

不会吧,你给个截图看看

ps:这里有个文件,就是你这个

cd /
cd usr/local
touch -d 20090101 20090101
touch -d 20090201 20090201

ls --full-time 20090101 20090201
看看具体是什么时间

作者: jerryjzm   发布时间: 2010-12-30



QUOTE:
不会吧,你给个截图看看

ps:这里有个文件,就是你这个

cd /
cd usr/local
touch -d 20090101 2009 ...
jerryjzm 发表于 2010-12-30 22:15




    感谢回复!
日期可以确定是正常的。单纯的查找日期范围是正确的返回。

也许是一个月中有大量的文件(每月有几W个),是否-exec 语句造成不明的错误?明天改用| xargs  语句试下。

作者: Rove_ACER1810   发布时间: 2010-12-30

-exec在参数多的时候是会出问题的
用xargs吧,这样的问题,我们也碰到不少

作者: jerryjzm   发布时间: 2010-12-30