Estou comparando uma pasta remota com uma pasta local e apenas copio as diferenças de arquivo para uma nova pasta.
Isso é o que eu uso:
rsync -ac --compare-dest=/folder/ rsync://remote/folder/ new-folder/
Meu problema é que ele também copia arquivos em que um atributo, como no caso de modificação, difere.
Primeiro, achei que --checksum
resolveria meu problema, mas como afirma a página de manual do Rsync:
--compare-dest=DIR
If a file is found in DIR that is identical to the sender's file, the file will NOT be transferred to the destination directory ... If a match is found that differs only in attributes, a local copy is made and the attributes updated...
Existe uma maneira de omitir a parte de verificação de atributo? Em outras palavras, apenas sincronizar arquivos se a sua soma de verificação for diferente?
Observação: desejo preservar os atributos quando uma soma de verificação de arquivo é diferente ( --archive
).
Editar: Por enquanto eu fui com uma solução alternativa de primeiro indexar as diferenças com um dry-run
rsync -acn --out-format="%n" rsync://remote/folder/ /folder/ > index_file
sed -i '/\/$/d' index_file # Ignore folders
E só sincronizar os
rsync -a --files-from=index_file rsync://remote/folder/ new-folder/
Mas ainda me pergunto se o mesmo pode ser alcançado de uma só vez com algo como --compare-dest
.
Tags rsync