Existe uma maneira de fazer com que o rsync imprima os caminhos de arquivo completos em todos os arquivos diferentes sem realmente transferir nenhum arquivo?
Como alternativa, eu preciso de uma maneira de diferenciar os arquivos em duas árvores (sobre SSH) com base apenas na mudança de tamanho ou na hora da última modificação.
--dry-run
dependerão do uso do-v
e--progress options
- portanto, se você não obtiver saída, verifique se essas opções estão definidas conforme necessário. Percebi que ele enviará nomes de diretórios mesmo quando os arquivos não foram alterados, mas você pode filtrá-los passando a saídased
ou algo semelhante.Prefiro usar o formato --out para ver os detalhes, canalizando-o para menos:
fonte
rsync -rvn localdir targetdir
O -n significa mostrar apenas ações (sem que nenhuma ação seja executada).
Observe que você precisa do 'v' ou ele não mostra nada! (o restante das respostas esquece isso ...)
fonte
Com base em outras respostas e https://serverfault.com/a/618740/114520
--dry-run
(ou-n
) para evitar modificações--itemize-changes
(ou-i
) para encontrar alterações--archive
(or-a
) para obter todos os subdiretóriosegrep
para filtrar entradas começando por ponto (sem alteração)O que lhe dá:
rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^\."
Se você quer apenas uma maneira, você pode alterar o comando:
rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^(\.|<)"
rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^(\.|>)"
E se você precisar apenas dos arquivos, basta adicionar
awk
mágica:rsync -nia source destination | egrep -v "sending incremental file list" | egrep -v "^\." | awk '{print $2}'
fonte
Eu iria para algo como isto:
Por exemplo:
fonte
A verdade é que, se você executar
rsync -v ...
e emitir um nome de arquivo para a tela, esse arquivo estará sendo transferido (ou teria sido transferido, se você estiver executando um --dry-run). Para verificar por que o rsync estava prestes a transferi-lo, use o modo de detalhamento: https://serverfault.com/a/618740/27813Como outros observaram, por padrão, o rsync apenas se compara com base no tamanho do arquivo e no registro de data e hora, os quais precisam corresponder, caso contrário uma "cópia delta" é iniciada nesse arquivo. Se você realmente deseja ver quais arquivos são diferentes, use o modo de soma de verificação "-c".
fonte