替换另一个目录中的文件

时间:2013-10-13 21:17:49

标签: bash shell directory cp binutils

我有两个目录结构如下:

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有一种简单的方法吗?

1 个答案:

答案 0 :(得分: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