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
如何删除超过 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