我有两个具有相似布局的目录树,即
.
|-- 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”,则由于目录名称冲突而导致“文件存在”错误。
更新:您可以假定两个目录树之间没有重复的文件。
您确定两个文件夹之间没有文件名重复吗?如果有重复,您想怎么办?
—
Zoredache
如果实际上在单个目录中有数百万个文件,则出于性能原因,您应该考虑将文件分成多个单独的子目录-尽管这与所询问的实际问题无关。
—
DrStalker