Para comparar o tempo de modificação (ou acesso ou mudança de inode) dos arquivos, você deve usar segundos desde o Epoch, é mais fácil de manipular nas comparações. A opção stat
-c
tem o especificador de formato %Y
para obter o tempo de modificação em segundos desde a época.
Para comparar dois arquivos com base no tempo de modificação, você pode escrever uma pequena função:
chk_mod () { (( $(stat -c '%Y' "$1") > $(stat -c '%Y' "$2") )) && echo "$1 is newer" \
|| echo "$2 is newer" ;}
Insira os dois arquivos de entrada como primeiro e segundo parâmetros posicionais, e a função mostrará qual deles é mais recente; quando eles tiverem exatamente os mesmos tempos de modificação, nenhuma saída será mostrada.
Exemplo:
$ chk_mod () { (( $(stat -c '%Y' "$1") > $(stat -c '%Y' "$2") )) && echo "$1 is newer" || echo "$2 is newer" ;}
$ chk_mod foobar spamegg
spamegg is newer