A maneira mais fácil de mesclar pastas de uma maneira, por exemplo
Merge everything from folder 1 → folder 2
seria usar rsync .
rsync -avh folder1/* folder2/
Isto irá:
- move todos os arquivos que existem apenas na pasta 1 e seus subdiretórios para a pasta 2
- não sobrescrever qualquer coisa na pasta 2 se já estiver lá
- sobrescreve arquivos que foram alterados, a menos que adicione a opção
--ignore-existing - não exclua nada da pasta 2, a menos que adicione a opção
--delete
Sinta-se à vontade para adaptar isso à sua situação (onde folder1 e folder2 são o contrário, eu acho).
Você pode tentar ver o que o comando faz chamando:
rsync -avh --dry-run folder1/ folder2/
A opção dry-run mostra o que ela faz.
Não se esqueça de que as barras invertidas têm um significado especial, por isso folder2/ , pois o destino não é igual a folder2 . Verifique a página de manual de rsync para uso e mais opções.
Também é recomendado -P (de acordo com --help , same as --partial --progress ), que adiciona show progress during transfer e keep partially transferred files (o que é útil para novas tentativas se houver uma falha).