1

我有两个目录结构如下:

dir1/a/file1
dir1/a/b/file2
dir1/a/c/d/file3

dir2/a/file4
dir2/a/b/file5
dir2/a/c/d/file6

我想将 dir1 下的子目录中的所有文件复制到 dir2,但保留当前位于 dir2 中的文件,换句话说,我希望得到的结构如下所示:

dir2/a/file1
dir2/a/file4

dir2/a/b/file2
dir2/a/b/file5

dir2/a/c/d/file3
dir2/a/c/d/file6

有没有一种简单的方法可以使用 bash 来做到这一点?

4

1 回答 1

0

你可以从

cd dir1 
cp -rpuv * ../dir2/

前:

$ find dir2/
dir2/
dir2/a
dir2/a/file4
dir2/a/c
dir2/a/c/d
dir2/a/c/d/file6
dir2/a/b
dir2/a/b/file5

后:

$ find dir2/
dir2/
dir2/a
dir2/a/file1
dir2/a/file4
dir2/a/c
dir2/a/c/d
dir2/a/c/d/file3
dir2/a/c/d/file6
dir2/a/b
dir2/a/b/file2
dir2/a/b/file5

请注意,-p保留权限,-v使复制详细并-u更新文件(按照问题的建议进行操作:将文件保留在 dir2 中

于 2013-10-13T21:20:00.103 回答