在Linux中合​​并2个目录树而不复制?

在Linux中合​​并2个目录树而不复制?,第1张

概述我有两个布局相似的目录树,即 . |-- dir1 | |-- a | | |-- file1.txt | | `-- file2.txt | |-- b | | `-- file3.txt | `-- c | `-- file4.txt `-- dir2 |-- a | |-- file5.txt 我有两个布局相似的目录树,即
. |-- 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个目录树而不复制?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1045537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存