在Linux中合??并2个目录树而不复制?
发布时间:2020-12-13 18:39:46 所属栏目:Linux 来源:网络整理
导读:我有两个布局相似的目录树,即 . |-- 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
我有两个布局相似的目录树,即
. |-- 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 /. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |