Tengo dos árboles de directorio con diseños similares, es decir
.
|-- dir1
| |-- a
| | |-- file1.txt
| | `-- file2.txt
| |-- b
| | `-- file3.txt
| `-- c
| `-- file4.txt
`-- dir2
|-- a
| |-- file5.txt
| `-- file6.txt
|-- b
| |-- file7.txt
| `-- file8.txt
`-- c
|-- file10.txt
`-- file9.txt
Me gustaría fusionar los árboles de directorios dir1 y dir2 para crear:
merged/
|-- a
| |-- file1.txt
| |-- file2.txt
| |-- file5.txt
| `-- file6.txt
|-- b
| |-- file3.txt
| |-- file7.txt
| `-- file8.txt
`-- c
|-- file10.txt
|-- file4.txt
`-- file9.txt
Sé que puedo hacer esto usando el comando "cp", pero quiero mover los archivos en lugar de copiarlos, porque los directorios reales que quiero fusionar son realmente grandes y contienen muchos archivos (millones). Si uso "mv", aparece el error "El archivo existe" debido a los nombres de directorio en conflicto.
ACTUALIZACIÓN: puede suponer que no hay archivos duplicados entre los dos árboles de directorios.