У мене є два дерева каталогів з подібними макетами, тобто
.
|-- 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
Я хотів би об'єднати дерева каталогів dir1 та dir2, щоб створити:
merged/
|-- a
| |-- file1.txt
| |-- file2.txt
| |-- file5.txt
| `-- file6.txt
|-- b
| |-- file3.txt
| |-- file7.txt
| `-- file8.txt
`-- c
|-- file10.txt
|-- file4.txt
`-- file9.txt
Я знаю, що я можу це зробити за допомогою команди "cp", але я хочу перемістити файли замість копіювання, тому що фактичні каталоги, які я хочу об'єднати, дійсно великі і містять багато файлів (мільйонів). Якщо я використовую "mv", я отримую помилку "Файл існує" через суперечливі назви каталогів.
ОНОВЛЕННЯ: Ви можете припустити, що між двома деревами каталогів немає дублікатів файлів.