Use o rsync para copiar apenas arquivos que foram alterados

1

Agora mesmo tenho estes comandos:

my_dir="$HOME/foo/bar";

rm -rf "$my_dir/WebstormProjects/";

rsync -r --exclude=".git" --exclude="node_modules" "$HOME/WebstormProjects/" "$my_dir/WebstormProjects/"

em vez de remover tudo em "$my_dir/WebstormProjects/" e depois copiar, estou procurando usar rsync , de forma que ele substitua somente os arquivos em "$my_dir/WebstormProjects/" se os arquivos em "$HOME/WebstormProjects/" forem mais recentes. Então, algo assim:

my_dir="$HOME/foo/bar";

rsync -r --newer --exclude=".git" --exclude="node_modules" "$HOME/WebstormProjects/" "$my_dir/WebstormProjects/"

é possível copiar arquivos apenas se eles forem mais novos que os arquivos de destino?

Eu fiz algumas leituras: link

diz:

By default, rsync only copies new or changed files from a source to destination...

Eu suponho que ele faz isso comparando caminhos de arquivos relativos? Arquivos com o mesmo caminho / nome são considerados iguais?

    
por Alexander Mills 14.08.2018 / 00:35

1 resposta

2

Este é o comportamento padrão do rsync. Ele verifica o tamanho do arquivo e o último tamanho da modificação.

Se você quiser usar somas de verificação, use a opção -c ou --checksum (mesmo efeito). A página man é aqui e descreve a opção, também de interesse pode ser --size-only

    
por 14.08.2018 / 03:50