同様のレイアウトの2つのディレクトリツリーがあります。
.
|-- 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」を使用すると、ディレクトリ名が競合するため「ファイルが存在します」エラーが表示されます。
更新:2つのディレクトリツリーの間に重複するファイルがないと仮定できます。