Bash script delete files older than n days ago bas

2019-09-05 04:28发布

问题:

I have some logs files with

 somefiles.log.YYYY-mm-dd

and I want to delete those files that are older than N days base on the timestamp in its filename.

回答1:

Better delete based on creation time using find:

find /var/log/ -name somefiles.log.* -ctime +3 -delete


回答2:

use cut command to retrieve YYYY-MM-dd part of filename. and use date command as following to convert it to time_t type.

date -d "YYYY-MM-dd" +%s

then you can compare time_t to determine which file should be deleted.