Buen día.
Lo que quiero hacer es buscar unos respaldos que sean mayores a 3 días y que se omitan los mensuales, pero con lo siguiente se consigue lo contrario.
Al tratar con lo siguiente muestra los mensuales:
find . -mtime +2 \( ! -newermt $(date +%Y-%m-01) \) -type f
Salida:
./backup_2020_08_01_000001_5541529.bak./backup_2020_09_01_000001_5747126.bak./backup_2019_08_01_000001_7048104.bak./backup_2019_12_01_154602_6063322.bak./backup_2020_02_01_000001_6142592.bak./backup_2020_01_01_000001_2033465.bak./backup_2019_11_01_000001_7906832.bak./backup_2019_10_01_000001_5724600.bak./backup_2019_09_01_000001_4566461.bak./backup_2019_07_01_000001_8012073.bak./backup_2020_03_01_000002_0689439.bak./backup_2020_07_01_000002_0273477.bak./backup_2020_10_01_000002_1054825.bak./backup_2020_05_01_000003_6781047.bak./backup_2020_04_01_000001_5868240.bak./backup_2020_06_01_000006_3652985.bak
Mientras que con lo siguiente trae los últimos tres:
find . -newermt $(date +%Y-%m-01) -type f \( ! -mtime +2 \)
Salida:
./backup_2020_11_10_000001_9398447.bak
./backup_2020_11_08_000001_7980910.bak
./backup_2020_11_09_000003_2991424.bak
Estos se intenta buscar a partir de su fecha de creación tomando mtime y newermt para filtrarlos, en el caso de newermt se toma $(date +%Y-%m-01) y pasando el 01 para filtrar el mensual.Aunque la mayoría de los archivos se generan con la fecha como parte de su nombre (ej. 2020_11_01, 20201101,2020-11-01) no todos siguen el mismo patrón.
¿Cómo puedo obtener el resultado deseado?
Gracias de antemano.