Rsync 不覆盖文件

Rsync 不覆盖文件
  1. 我有 2 个目录 -etcoldroot/etc
  2. 我希望所有文件都etc完全匹配oldroot/etc
  3. 如果其中有任何文件etc不在其中oldroot/etc,我想按原样保留它们

我已经尝试了我能想到的各种 rsync 标志,但无法获得所需的结果。

# # A few of the simpler commands I have tried
# rsync -Ia oldroot/etc etc
# rsync -Iac oldroot/etc etc
# rsync -ac oldroot/etc etc

他们完成而没有错误。当我对目录 ( ) 进行比较时diff -r oldroot/etc etc,两个目录中仍然存在多个具有不同内容的相同文件。这两天我一直在工作,不用说我感到难以置信的沮丧。

答案1

rsync --… oldroot/etc etc将源目录复制etc到目标目录的子目录,因此文件oldroot/etc/foo最终复制到etc/etc/foo.如果要将目录复制到同名目录,请指定目标目录的父目录:

rsync -a oldroot/etc .

如果要将一个目录复制到另一个目录,请告诉 rsync 通过在源目录后添加尾部斜杠将源目录的内容复制到目标目录。 (目标上的尾部斜线没有区别。)

rsync -a oldroot/etc/ etc

相关内容