Uma maneira é (ab) usar o horário da época. Aqui está um teste em que primeiro crio sete arquivos em sequência em um diretório vazio, onde os arquivos c# recebem "o mesmo" ctime em relação a find :
$ for i in a b "c1 c2 c3" d e; do touch $i; sleep 1; done
$ find -newer c2
.
./d
./e
$ find -not -newer c2
./c3
./c2
./a
./b
./c1
$ find -newerct @$(($(stat -c %Z c2)-1))
.
./c3
./d
./c2
./e
./c1
$ find -not -newerct @$(($(stat -c %Z c2)-1))
./a
./b
Isso deve representar todos os conjuntos possíveis de ctime relativos a c2 :
-
ctime> %código% -
c2≤ctime -
c2≥ctime -
c2< %código%
com correspondências um pouco difusas, pelo menos.
O terceiro comando obtém epoch ctime para o arquivo c2 , subtrai 1 via aritmética de shell e alimenta isso como referência a ctime (o c2 é necessário para que -newerct interprete é como um timestamp ) para localizar todos os arquivos com @ mais recente que este timestamp interpretado (consulte find in ctime ). O quarto comando nega esta correspondência e deve, na prática, fazer o que você quer se eu entendi a pergunta corretamente, se você colocar seu arquivo de referência como -newerXY no meu exemplo.
Observe que o deslocamento de "1 segundo" é um tanto arbitrário (que é o que eu quis dizer com "correspondência difusa"), e pode-se imaginar uma situação em que um erro possa ser construído. No entanto, os registros de data e hora dos arquivos não são "definidos" de qualquer maneira e não podem ser confiáveis, portanto, não posso imaginá-los para gerar problemas práticos ou de segurança em situações reais.
Na prática, você pode até querer aumentar o deslocamento de 1 segundo (vejo na sua pergunta que você usa 1 minuto agora), mas isso é um detalhe de implementação.