Eu quero transferir apenas arquivos novos e alterados, usando rsync
no Ubuntu 14.04. Eu não quero transferir tudo, todas as vezes. Não estou preocupado em verificar se o conteúdo dos arquivos realmente mudou. Postagens semelhantes existem, mas não tenho certeza porque a documentação não está alinhada com o que é dito nesses posts.
A documentação em rsync
diz:
-u, --update
This forces rsync to skip any files for which the destination file already exists and has a date later than the source file.
link
Editar : Encontrou outra página de documentação (provavelmente mais oficial). Diz:
-u, --update
skip files that are newer on the receiver
link
Eu acho essas palavras mal formuladas. Em primeiro lugar, o primeiro diz "data". Eu suponho que realmente significa "timestamp". Em segundo lugar, e mais importante, parece implicar que um arquivo na origem e no destino com o mesmo timestamp será retransferido. A documentação diz claramente que ele ignorará apenas um arquivo quando o arquivo de destino tiver um registro de data e hora mais recente (ou seja, posterior) ( T_d
) do que o registro de data e hora do arquivo de origem ( T_s
), indicando que será transferido quando o arquivo de destino for mais antigo ou igual ao arquivo de origem: Ignorando a transferência se T_d > T_s
implicar que ela será transferida quando T_d <= T_s
.
Esta é uma questão importante para mim, porque se você quiser transferir todos os arquivos novos e alterados de uma pasta de origem para uma pasta de destino com o mínimo de trabalho possível (network / io / cpu / time), o sinalizador de atualização re-transferir tudo o tempo todo.
Ou talvez eu esteja sentindo falta de algo ou entendendo mal alguma coisa?
(Esta postagem foi rejeitada de stackoverflow.com devido a tópicos fora do tópico. Adicioná-la e a resposta, aqui, caso isso possa ajudar as pessoas no futuro.)