当“参数列表太长”时如何删除所有超过3天的文件?

我有一个日志文件目录,其中有82000个文件和目录(大约一半)。

我需要删除所有超过3天的文件和目录。

在一个有37000个文件的目录中,我可以这样做:

find * -mtime +3 -exec rm {} \; 

但有82000个文件/目录,我得到的错误:

/ usr / bin / find:参数列表太长

我怎样才能解决这个错误,以便我可以删除所有超过3天的文件/目录?

要删除当前目录中的所有文件目录:

 find . -mtime +3 | xargs rm -Rf 

或者,更符合OP的原始命令:

 find . -mtime +3 -exec rm -Rf -- {} \; 

也可以使用:

 find . -mindepth 1 -mtime +3 -delete 

不要删除目标目录

原来的问题的另一个解决scheme,尤其是, 如果你只想删除一些文件夹中较旧的文件,这将是有用的,如下所示:

 find . -name "*.sess" -mtime +100 

等等..引用块shell通配符,从而让你“find”数以百万计的文件:)