我有一个具有82000页的文件和目录在它(约各占一半)日志文件目录。
我需要删除所有文件,哪些是超过3天以上的目录。
在一个其中有37000个文件的目录,我能够跟这样做:
find * -mtime +3 -exec rm {} \;
但随着82000的文件/目录,我得到的错误:
在/ usr /斌/发现:参数列表太长
我怎样才能解决这个错误,这样我可以删除所有文件/目录是超过3天的?
我有一个具有82000页的文件和目录在它(约各占一半)日志文件目录。
我需要删除所有文件,哪些是超过3天以上的目录。
在一个其中有37000个文件的目录,我能够跟这样做:
find * -mtime +3 -exec rm {} \;
但随着82000的文件/目录,我得到的错误:
在/ usr /斌/发现:参数列表太长
我怎样才能解决这个错误,这样我可以删除所有文件/目录是超过3天的?
要删除当前目录中的所有文件和目录:
find . -mtime +3 | xargs rm -Rf
或替代,更符合OP的原始命令行:
find . -mtime +3 -exec rm -Rf -- {} \;
也可以使用:
find . -mindepth 1 -mtime +3 -delete
不删除目标目录
对于原来的问题的另一个解决方案,ESP。 有用的,如果你只想删除一些旧文件的文件夹中,将水木清华这样的:
find . -name "*.sess" -mtime +100
等..行情阻止shell通配符,从而让您在“发现”数以百万计的文件:)