BASH - 删除超过 3 个月的文件?

BASH - Delete files older than 3 months?

如何删除超过 3 个月的文件?

90 天我知道:

find /tmp/*.log -mtime +90 -type f -delete

但是我怎么知道 3 个月总是等于 90 天?确切的天数?有没有更好的方法让 -mtime 跟随 months

如果您想要 3 个月的确切天数,那么您可以使用:

days=$(( ( $(date '+%s') - $(date -d '3 months ago' '+%s') ) / 86400 ))

并将其用作:

find /tmp/*.log -mtime +$days -type f -delete

或直接在find:

find /tmp/*.log -type f \
-mtime "+$(( ( $(date '+%s') - $(date -d '3 months ago' '+%s') ) / 86400 ))" -delete