. |-- 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”,由于目录名冲突,我会收到“文件存在”错误.
更新:您可以假设两个目录树之间没有重复的文件.
解决方法rsync -ax --link-dest=dir1/ dir1/ merged/rsync -ax --link-dest=dir2/ dir2/ merged/
这将创建硬链接而不是移动它们,您可以验证它们是否被正确移动,然后删除dir1 /和dir2 /.
总结以上是内存溢出为你收集整理的在Linux中合并2个目录树而不复制?全部内容,希望文章能够帮你解决在Linux中合并2个目录树而不复制?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)