find命令批量删除指定时间前的文件夹的问题

3890阅读 0评论2012-12-13 arron0754
分类:LINUX

今天遇到这个情况,在Linux下需要批量删除指定目录下30天前生成的文件夹下所有的文件,我是这样操作的:

  1. $find . -mtime +30 -type d -name "20*" -exec rm -rf {} \;  #需要删除的文件夹以yyyymmdd命名
  2. find: `/ftpdata/zhzydata/112data/20120929': No such file or directory
  3. find: `/ftpdata/zhzydata/112data/20121013': No such file or directory
  4. find: `/ftpdata/zhzydata/112data/20121012': No such file or directory
  5. find: `/ftpdata/zhzydata/112data/20121010': No such file or directory
  6. find: `/ftpdata/zhzydata/112data/20120930': No such file or directory
执行前确认过,报错中显示的几个文件夹确实存在。执行该命令后,这些文件夹也删除了。基本满足要求,就是出现报错信息,不爽。

网上查询一下,发现find命令删除文件或文件夹时,还有另一种通常写法,果断测试一下:

  1. $find . -mtime +30 -type d -name "20*"|xargs rm -rf
呵呵,居然这样就不会报错。
难道是find命令上的一个bug,希望有哪位大牛分析分析。
上一篇:SecureCRT中文显示设置引起的问题
下一篇:用Oracle发邮件