我的目录命名为:
2012-12-12 2012-10-12 2012-08-08
如何使用 bash shell 脚本删除超过 10 天的目录?
这将为您递归地执行此操作:
find /path/to/base/dir/* -type d -ctime +10 -exec rm -rf {} \;
解释:
find
/path/to/base/dir
-type d
-ctime +10
-exec ... \;
...
rm -rf {}
{}
或者,使用:
find /path/to/base/dir/* -type d -ctime +10 | xargs rm -rf
效率更高一些,因为它相当于:
rm -rf dir1 dir2 dir3 ...
相对于:
rm -rf dir1; rm -rf dir2; rm -rf dir3; ...
就像在-exec方法中一样。
-exec
使用现代版本的find,您可以替换;with +,它会为您执行等效的xargs调用,传递适合每个 exec 系统调用的尽可能多的文件:
;
+
xargs
find . -type d -ctime +10 -exec rm -rf {} +