Rsync para o resgate! : -)
Observe esse caractere de barra (ou sua ausência) no final do parâmetro 'child1'. Esta é a única diferença. Os comandos são executados em parent
.
$ rsync -a child1 child2/
Resultado:
├── child1
│ ├── file0
│ ├── grandchild1
│ │ ├── file1
│ │ └── file2
│ └── grandchild2
│ └── file3
└── child2
└── child1
├── file0
├── grandchild1
│ ├── file1
│ └── file2
└── grandchild2
└── file3
$ rsync -a child1/ child2/
Resultado:
├── child1
│ ├── file0
│ ├── grandchild1
│ │ ├── file1
│ │ └── file2
│ └── grandchild2
│ └── file3
└── child2
├── file0
├── grandchild1
│ ├── file1
│ └── file2
└── grandchild2
└── file3