Que comando tar devo usar para obter arquivos alterados após uma determinada data - incluindo alterações de propriedade, permissões, etc. - mas excluindo arquivos que foram simplesmente restaurados do backup?
Por outro lado, seria preferível percorrer todos os arquivos após uma restauração e alterar o tempo de alteração de status de cada um como parte da restauração?
Eu tenho usado um comando semelhante ao seguinte para tar todos os arquivos modificados recentemente desde uma determinada data para um backup periódico do pobre homem:
$ SINCE=20190501
$ tar cf - --after-date="${SINCE} 00:00:00" . | tar tvf -
Este não é o comando real, mas ilustra o ponto que estou tentando enfatizar. Este comando simplesmente despeja a lista de arquivos que deveriam ir para o arquivo tar se eu estivesse enviando a saída para um arquivo tar.
Até agora, pensei que este comando estava funcionando bem até substituir meu disco rígido e restaurar todos os arquivos do backup. Olhando para a saída de stat
, parece que a data de alteração é a data em que restaurei todos os arquivos do backup, então agora todos os arquivos estão sendo selecionados no meu comando tar acima.
$ stat restore_file.txt
...
Modify: 2019-04-01 23:52:12.000000000 -0500
Change: 2019-05-25 01:52:10.737688040 -0500
Mesmo --newer-mtime
não parece ajudar:
$ tar cf - --newer-mtime="${SINCE}" . | tar tvf -
ATUALIZAÇÃO: também tentei o seguinte, e isso também não ajudou em nada, pois ainda selecionava mais arquivos do que eu queria:
$ SINCE=201905010000
$ touch -t "${SINCE}" /tmp/timestamp
$ stat /tmp/timestamp
Access: 2019-05-01 00:00:00.000000000 -0500
Modify: 2019-05-01 00:00:00.000000000 -0500
Change: 2019-06-30 18:29:19.277267874 -0500
$ tar cf - --after-date /tmp/timestamp . | tar tvf -