递归复制所有文件而不替换

递归复制所有文件而不替换

设想:

来源目录:

/day1/hour1/instance1/files.ext
/day1/hour1/instance2/files.ext
/day1/hour1/instance3/files.ext
/day1/hour2/instance1/files.ext
/day1/hour2/instance2/files.ext

ETC..

目标目录(已存在):

/day1/hour1/instance4/files.ext
/day1/hour1/instance5/files.ext
/day1/hour1/instance6/files.ext
/day1/hour2/instance6/files.ext
/day1/hour2/instance7/files.ext

我必须将所有文件从源复制到目标。

正如您所看到的,我有一棵相同的树,这意味着同一天和同一时间,但源和目标的实例不同。我需要将所有目录和文件从源复制到目标中同一棵树中,但保留目标文件夹中已有的所有文件。

我怎样才能做到这一点?

cp -R是我需要的吗?或者我需要添加更多参数吗?

答案1

rsync

rsync --archive --ignore-existing source_dir/ target_dir/

这将复制source_dir层次结构 inte target_dir,但不会覆盖 inte 中target_dir已存在的任何文件。

答案2

我想我会使用 rsync 来代替。使用 rsync 您可以复制和同步数据。典型参数为:

rsync -avh source destination

v 用于详细 a 用于递归并保留文件权限、所有权和时间戳 h 用于生成人类可读的输出数字

相关内容