-newermt 2017-10-31
significa "modificado após 31 de outubro de 00:00", em ! -newermt 2017-10-31
significa "modificado antes ou a 31 de outubro de 00:00"
então este último não inclui arquivos feitos durante o dia 31 de outubro. Se você usa -newermt 2017-10-01 ! -newermt 2017-10-31
, perderá o último dia do mês.
$ find . -type f -newermt 2017-10-01 ! -newermt 2017-10-31
./oct30
$ find . -type f -newermt 2017-10-01 ! -newermt 2017-11-30
./oct30
./oct31
./nov01
$ find . -type f -newermt 2017-11-01 ! -newermt 2017-11-30
./nov01
Você provavelmente deseja que -newermt 2017-10-01 ! -newermt 2017-11-01
obtenha todo o mês de outubro, mas observe que os arquivos criados exatamente na meia-noite entre 31 de outubro e 1 de novembro contam para outubro. (Isso provavelmente não será um problema em nenhum sistema com registros de data e hora de subsegundos).