Como copio somente arquivos que sobrescrevem outros em um diretório

1

Eu quero copiar e substituir somente os arquivos existentes no destino. Aka excluindo 'arquivos solitários' que existem na origem xou no destino.

    
por Emergency Temporal Shift 02.05.2018 / 22:20

2 respostas

1

Você deve conseguir isso com rsync , usando o sinalizador --existing :

        --existing              skip creating new files on receiver

dado

$ tree -a A/ B/
A/
├── bar
├── baz
├── foo
└── .hidden
B/
├── bam
├── baz
├── foo
└── .hidden

0 diretórios, 8 arquivos

em que baz , foo e .hidden são comuns, mas bar existe somente na origem e bam apenas no destino, então (nota: incluímos o verboso -v e -n "run dry" flag com a finalidade de ilustração):

$ rsync -avn --existing A/ B/
sending incremental file list
.hidden
baz
foo

sent 152 bytes  received 25 bytes  354.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)

atualiza apenas baz , foo e .hidden . (Arquivos que existem apenas no destino são ignorados por padrão).

Você pode verificar se sem --existing , bar também seria copiado:

$ rsync -avn A/ B/
sending incremental file list
.hidden
bar
baz
foo

sent 155 bytes  received 28 bytes  366.00 bytes/sec
total size is 0  speedup is 0.00 (DRY RUN)
    
por steeldriver 02.05.2018 / 23:32
0

Verifique isso no stackoverflow. Existem várias soluções. Eu não tentei, mas acho que eles deveriam trabalhar e resolver o seu problema:

link

Espero que ajude você. ;)

    
por user487344 02.05.2018 / 23:24