Como combinar diretórios estruturados de forma semelhante?

5

Eu tenho dois diretórios com esta aparência:

/folder1/sub1/file1.txt
/folder1/sub1/file2.txt
/folder1/sub2/file1.txt
/folder1/sub2/file2.txt

/folder2/sub1/file3.txt
/folder2/sub1/file4.txt
/folder2/sub2/file3.txt
/folder2/sub2/file4.txt

Eu gostaria de copiar todos os arquivos de folder2 para folder1 sem excluir nenhuma das pastas existentes, para que eu termine com o seguinte:

/folder1/sub1/file1.txt
/folder1/sub1/file2.txt
/folder1/sub1/file3.txt
/folder1/sub1/file4.txt
/folder1/sub2/file1.txt
/folder1/sub2/file2.txt
/folder1/sub2/file3.txt
/folder1/sub2/file4.txt

como posso conseguir isso através do terminal?

    
por GSto 12.01.2012 / 21:08

1 resposta

9

rsync é uma ferramenta perfeita para este trabalho:

rsync -av folder2/ folder1

A opção -v é opcional, mas lista os arquivos conforme eles são processados. A barra após folder2 é obrigatório , caso contrário, você obterá folder1/folder2/file1.txt em vez de folder1/file1.txt .

Se você não tiver certeza se o comando faz o que deseja, adicione a opção --dry-run para mostrar o que realmente aconteceria.

    
por Lekensteyn 12.01.2012 / 21:16