Mam dwa drzewa katalogów o podobnych układach, tj
.
|-- 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
Chciałbym scalić drzewa katalogów dir1 i dir2, aby utworzyć:
merged/
|-- a
| |-- file1.txt
| |-- file2.txt
| |-- file5.txt
| `-- file6.txt
|-- b
| |-- file3.txt
| |-- file7.txt
| `-- file8.txt
`-- c
|-- file10.txt
|-- file4.txt
`-- file9.txt
Wiem, że mogę to zrobić za pomocą polecenia „cp”, ale chcę przenieść pliki zamiast kopiować, ponieważ rzeczywiste katalogi, które chcę scalić, są naprawdę duże i zawierają wiele plików (miliony). Jeśli użyję „mv”, pojawia się błąd „Plik istnieje” z powodu sprzecznych nazw katalogów.
AKTUALIZACJA: Możesz założyć, że pomiędzy dwoma drzewami katalogów nie ma duplikatów plików.