- 我有 2 个目录 -
etc
和oldroot/etc
- 我希望所有文件都
etc
完全匹配oldroot/etc
- 如果其中有任何文件
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