У меня есть два дерева каталогов с одинаковыми макетами, т.е.
.
|-- 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», я получаю ошибку «Файл существует» из-за конфликтующих имен каталогов.
ОБНОВЛЕНИЕ: Вы можете предположить, что между двумя деревьями каталогов нет повторяющихся файлов.