在 centos 中使用 find 查找子目录下的文件

在 centos 中使用 find 查找子目录下的文件

我当前的 cronjob 是

* 10 * * * /bin/find /var/spool/record/ -type f -exec /bin/rm {} +

它每天上午10点删除所有文件。

我正在尝试删除当前目录下小于 90KB 类型的特定文件。为此

* 10 * * * /bin/find /var/spool/record/ -type f -iname "*.gsm" -size -90K -exec /bin/rm {} +

我担心的是,上述语法是否也会从子目录中删除 GSM 文件,这些文件将每天在 /var/spool/record/ 下创建并保留该特定日期的记录。例如 /var/spool/record/date1、/var/spool/record/date2。

我还想在每月 10 日上午 10 点删除 /var/spool/record/ 及其子目录下超过 60 天的 GSM 文件

* 10 10 * * /bin/find /var/spool/record/ -type f -iname "*.gsm" -mtime +60 -exec /bin/rm {} +

删除超过 60 天的子目录和文件的正确语法是什么。

答案1

您编写的 cron 将在 10:00 至 10:59 之间每分钟运行一次。使用以下命令修复该问题:

00 10 10 * * /bin/find /var/spool/record/ -type f -name "*.gsm" -mtime +60 -exec /bin/rm {} \;

这将在每月上午 10 点和 10 号从 /var/spool/record 及其子目录中删除超过 60 天的 .gsm 文件。

相关内容