Qual é o comando rsync para mesclar “inteligentemente” duas pastas?

Qual é o comando rsync para mesclar “inteligentemente” duas pastas?

Tenho algumas pastas que foram duplicadas por engano e preciso mesclá-las. Digamos que a pasta A contenha o arquivo X e a pasta B contenha o arquivo Y, eu gostaria que o arquivo X fosse copiado para a pasta B. Mas, é claro, posso enfrentar casos mais complexos, onde ambas as pastas A e B contêm o mesmo arquivo X : nesses casos, eu gostaria de manter a cópia mais recente do arquivo, então o rsync deve comparar os dois arquivos, e se a origem for mais antiga basta pular, caso contrário o destino é o mais antigo, sobrescrever.

Quais parâmetros devo colocar na linha de comando do rsync?

Foi isso que encontrei pesquisando no Google, mas não acho correto.

rsync -avz --ignore-existing src dest

A página de manual está de alguma forma além de mim.

PS Nos casos em que existe um arquivo em ambas as pastas, o melhor seria sobrescrever o mais antigo na pasta de destino e ao mesmo tempo manter uma cópia do mais antigo, apenas como backup caso você precise voltar para o anterior

Responder1

Eu usaria:

rsync -abviuzP src/ dest/
  • -iativa o formato detalhado, que mostra mais informações do que o formato padrão
  • -bfaz backup do rsync dos arquivos que existem em ambas as pastas, anexando ~ao arquivo antigo. Você pode controlar esse sufixo com--suffix .suf
  • -ufaz com que a transferência rsync ignore arquivos que são mais recentes em dest do que em src
  • -zativa a compactação, o que é útil ao transferir arquivos facilmente compactáveis ​​através de links lentos
  • -Pliga --partiale--progress
  • --partialfaz com que o rsync mantenha os arquivos parcialmente transferidos se a transferência for interrompida
  • --progressmostra uma barra de progresso para cada transferência, útil se você transferir arquivos grandes

informação relacionada