当“参数列表太长”时如何删除所有超过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”数以百万计的文件:)