在 Linux 中使用 cron 任务删除旧文件

在 Linux 中使用 cron 任务删除旧文件

我正在设置一个 cron 作业,想要删除超过 1 天的日志文件。执行此操作的命令如下。我在 AWS Linux EC2 实例上执行此操作。

find /var/log/tomcat8/ -mindepth 1 -mtime +1 -delete

但我想要实现的是排除.log文件不被删除,只想删除带.gz扩展名的文件。有人能告诉我如何在 find 命令中实现排除吗?

答案1

向您的命令添加一个-name标志,find例如:

find /var/log/tomcat8/ -mindepth 1 -mtime +1 -name "*.gz" -delete

这应该会将其隔离为仅查找较旧的.gz文件。要添加其他选项(例如要查找的另一种文件名类型),请使用 switch -o,它的作用类似于选项上的“OR”语句。因此,如下所示:

find /var/log/tomcat8/ -mindepth 1 -mtime +1 -name "*.gz" -o -name "*.log" -delete

相关内容