requierement de cópia especial (talvez Robocopy)

0

Eu tenho uma cópia especial (talvez Robocopy) requierement:

Eu tenho:

  • Um diretório de origem (com subdiretórios)
  • Um diretório de destino (com subdiretórios)

Ambas as estruturas de diretórios são quase iguais. Mas no diretório de destino existem alguns arquivos novos ou adicionais. Eu tenho que copiar arquivos de origem para o diretório de destino que não são mais recentes (ou adicionados) no diretório de destino.

Exemplo:

O arquivo example.doc existe no diretório de origem e de destino. Mas o arquivo no diretório de destino tem um registro de data e hora mais recente (alguém trabalhou neste arquivo) e eu quero que não sobrescrevam este arquivo.

O arquivo example2.doc existe no diretório de origem e de destino. Ambos os arquivos possuem o mesmo timestamp. Nesse caso, quero sobrescrever o arquivo no diretório tartet com o arquivo do diretório de origem.

Talvez o Robocopy seja a ferramenta para este caso ... Eu li todos os parâmetros (e existem muitos :) mas não encontrei uma solução.

BTW: Este é o meu primeiro post no stackoverflow: -)

Muito obrigado.

Gernot

    
por GernotPF 12.01.2014 / 20:16

2 respostas

0

Você pode usar o comando rsync com o comutador de backup, -b , com a ignorar arquivos mais recentes no comutador receptor, -u , como na sequência a seguir, onde o primeiro rsync obtém os arquivos, O segundo se recusa a sobrescrever um novo arquivo no receptor, e o terceiro rsync copia o arquivo mais recente do remetente para o receptor, fazendo o backup do arquivo que foi modificado no receptor como xv ~ antes sobrescrevendo-a com o xv do remetente. A localização do arquivo que é movido para o lado pode ser controlada e colocada em outro local com a opção - backup-dir = DIR .

Claro, você pode fazer toda essa sincronização no mesmo sistema de arquivos com a mesma facilidade.

(Ei! É assim que o Carbon Copy Cloner faz a maior parte da mágica! E eles cobram US $ 40 pelo serviço ... Ai, divago ...)

whmcclos@Williams-MacBook-Pro:~$ rsync -auvb ~/bin whmcclos@localhost:/tmp
building file list ... done
bin/
bin/days
bin/hide
bin/jedit
bin/mlf
bin/most_recent_file -> most_recent_file.pl
bin/most_recent_file.pl
bin/mplayer
bin/mvim
bin/qvim
bin/sys_config
bin/sys_config.log
bin/tree
bin/try
bin/unhide
bin/xv
bin/zed -> zed.pl
bin/zed.pl

sent 18887050 bytes  received 390 bytes  37774880.00 bytes/sec
total size is 18883599  speedup is 1.00
whmcclos@Williams-MacBook-Pro:~$ touch /tmp/bin/xv
whmcclos@Williams-MacBook-Pro:~$ rsync -auvb ~/bin whmcclos@localhost:/tmp
building file list ... done

sent 422 bytes  received 20 bytes  294.67 bytes/sec
total size is 18883599  speedup is 42723.07
whmcclos@Williams-MacBook-Pro:~$ touch /tmp/bin/xv
whmcclos@Williams-MacBook-Pro:~$ touch ~/bin/xv
whmcclos@Williams-MacBook-Pro:~$ rsync -auvb ~/bin whmcclos@localhost:/tmp
building file list ... done
bin/xv

sent 7392 bytes  received 10434 bytes  35652.00 bytes/sec
total size is 18883599  speedup is 1059.33
whmcclos@Williams-MacBook-Pro:~$ ls /tmp/bin/xv*
/tmp/bin/xv  /tmp/bin/xv~
    
por 12.01.2014 / 20:41
0

The file example2.doc exists in source and target directory. Both files have the same timestamp. In this case, I want to overwrite the file in the tartet directory with the file from the source directory.

A opção de linha de comando do relavent para isso é:

/IS      Include Same files.

Note: Using the /IS switch alone, with no other switches, forces a total refresh of the destination tree.

Para obter mais informações sobre as opções do Robocopy, veja este outro post que escrevi sobre o Robocopy: link , que inclui links externos para mais documentação.

    
por 30.01.2014 / 00:56

Tags