我有一个日志文件目录,其中包含82000个文件和目录(大约一半)。
我需要删除所有超过3天的文件和目录。
在其中包含37000个文件的目录中,我能够执行以下操作:
find * -mtime +3 -exec rm {} \;
但是使用82000个文件/目录,我得到了错误:
/ usr / bin / find:参数列表太长
如何解决此错误,以便删除所有早于3天的文件/目录?
我有一个日志文件目录,其中包含82000个文件和目录(大约一半)。
我需要删除所有超过3天的文件和目录。
在其中包含37000个文件的目录中,我能够执行以下操作:
find * -mtime +3 -exec rm {} \;
但是使用82000个文件/目录,我得到了错误:
/ usr / bin / find:参数列表太长
如何解决此错误,以便删除所有早于3天的文件/目录?
find * -mtime +3 |xargs rm
会解决这个问题。
find *
。 find .
更好。带有globe的shell将扩展*
为一个巨大的文件和目录列表。
Answers:
删除所有文件 ,并在目录内的当前目录:
find . -mtime +3 | xargs rm -Rf
或者,更符合OP的原始命令:
find . -mtime +3 -exec rm -Rf -- {} \;
--
在rm之后添加,例如find . -mtime +3 -exec rm -- {} \;
--
是干什么的。
find -mtime +3 -exec rm {} +
吗?