今天遇到这个情况,在Linux下需要批量删除指定目录下30天前生成的文件夹下所有的文件,我是这样操作的:
- $find . -mtime +30 -type d -name "20*" -exec rm -rf {} \; #需要删除的文件夹以yyyymmdd命名
- find: `/ftpdata/zhzydata/112data/20120929': No such file or directory
- find: `/ftpdata/zhzydata/112data/20121013': No such file or directory
- find: `/ftpdata/zhzydata/112data/20121012': No such file or directory
- find: `/ftpdata/zhzydata/112data/20121010': No such file or directory
- find: `/ftpdata/zhzydata/112data/20120930': No such file or directory
执行前确认过,报错中显示的几个文件夹确实存在。执行该命令后,这些文件夹也删除了。基本满足要求,就是出现报错信息,不爽。
网上查询一下,发现find命令删除文件或文件夹时,还有另一种通常写法,果断测试一下:
- $find . -mtime +30 -type d -name "20*"|xargs rm -rf
呵呵,居然这样就不会报错。
难道是find命令上的一个bug,希望有哪位大牛分析分析。
阅读(3842) | 评论(0) | 转发(0) |