rsync: Compare dois diretórios, copie e renomeie arquivos diferentes em vez de sobrescrever o destino

1

Não consigo encontrar uma solução para fazer o seguinte com o rsync no Linux:

  • Compare duas pastas
  • Quando são encontrados dois arquivos idênticos na mesma posição raiz na árvore de origem e na árvore de destino, com o mesmo nome, mas timestamp ou tamanho diferente:
  • Em vez de atualizar o arquivo de destino (menor tamanho ou timestamp antigo) com a origem em (tamanho maior ou maior), anexando os fragmentos ausentes ao conteúdo (usando -u) ou substituindo o arquivo Inteiro (usando - W), eu gostaria de tê-lo: copiá-lo, para a mesma posição de árvore, com um prefixo ou sufixo de nome.

Houve uma solução para evitar perder o arquivo mais antigo se for substituído, copiando-os para uma terceira pasta, mas acho que copiá-los para o mesmo local no destino e renomeá-los, mantendo o antigo lá também, seria de um contexto melhor, mantendo o novo locais dos arquivos.

Aqui está como eu quero que funcione:

    
por OpenSourceMan 31.12.2017 / 03:11

1 resposta

1

Se eu entendi corretamente, você está querendo fazer o versionamento de arquivos. Isso foi discutido em uma pergunta anterior , com a exceção de que você está querendo para trabalhar em um diretório inteiro. É muito fácil de fazer (tirado da resposta do @ Sridhar-Sarnobat):

rsync -ab --suffix='date +'.%F_%H-%M-%S'' ${SRC}/ ${DEST}
    
por 31.12.2017 / 04:13