Rsync não sobrescreve arquivos

0
  1. eu tenho dois diretórios - etc e oldroot/etc
  2. Eu quero que todos os arquivos em etc correspondam exatamente como oldroot/etc
  3. Se houver arquivos em etc que não estejam em oldroot/etc , quero preservá-los como estão

Eu tentei todos os tipos de sinalizadores que consigo pensar com o rsync, mas não consigo obter o resultado desejado.

# # A few of the simpler commands I have tried
# rsync -Ia oldroot/etc etc
# rsync -Iac oldroot/etc etc
# rsync -ac oldroot/etc etc

Eles são concluídos sem erros. Quando faço um diff nos diretórios ( diff -r oldroot/etc etc ), restam vários dos mesmos arquivos que existem nos diretórios e com conteúdo diferente. Eu tenho trabalhado nestes dois dias, e escusado será dizer que estou frustrado além da crença.

    
por Sepero 04.03.2015 / 00:48

1 resposta

2

rsync --… oldroot/etc etc copia o diretório de origem etc para um subdiretório do diretório de destino, portanto, um arquivo oldroot/etc/foo é copiado para etc/etc/foo . Se você quiser copiar um diretório para um diretório com o mesmo nome, especifique o pai do diretório de destino:

rsync -a oldroot/etc .

Se você quiser copiar um diretório para outro diretório, diga ao rsync para copiar o conteúdo do diretório de origem no diretório de destino, anexando uma barra à fonte. (Uma barra no alvo não faz diferença.)

rsync -a oldroot/etc/ etc
    
por 04.03.2015 / 00:55

Tags