Copie todos os arquivos recursivamente sem substituir

0

Cenário:

Diros de origem:

/day1/hour1/instance1/files.ext
/day1/hour1/instance2/files.ext
/day1/hour1/instance3/files.ext
/day1/hour2/instance1/files.ext
/day1/hour2/instance2/files.ext

etc.

Dir de destino (já existe):

/day1/hour1/instance4/files.ext
/day1/hour1/instance5/files.ext
/day1/hour1/instance6/files.ext
/day1/hour2/instance6/files.ext
/day1/hour2/instance7/files.ext

Eu tenho que copiar todos os arquivos da fonte para o alvo.

Como você pode ver, eu tenho uma mesma árvore, ou seja, o mesmo dia e as mesmas horas, mas instâncias diferentes da origem e do destino. Eu preciso copiar todos os dir e arquivos de origem na mesma árvore exata no destino, mas preservando todos os arquivos que já estão na pasta de destino.

Como eu poderia conseguir isso?

cp -R é o que eu preciso? ou preciso adicionar mais alguns parâmetros?

    
por Antonio Calì 16.06.2017 / 09:39

2 respostas

1

com rsync :

rsync --archive --ignore-existing source_dir/ target_dir/

Isso copiará a source_dir hierarquia inte target_dir , mas não substituirá nenhum arquivo no target_dir que já existe.

    
por 16.06.2017 / 10:40
1

Acho que eu usaria o rsync. Com rsync você pode copiar e sincronizar os dados. Parâmetros típicos são:

rsync -avh source destination

v é para verbose um para recursivo e preserva as permissões de arquivo, as propriedades e os timestamps h é para fazer números de saída legíveis por humanos

    
por 16.06.2017 / 10:36

Tags