我有以下目录。我的目标是比较OLD
vsNEW
目录并保存目录中的不同文件DEST
:
OLD/
...src/
...src/config.js
...test/
...test/main.js
NEW/
...src/
...src/config.js
...test/
...test/main.js //Modified
DEST/
//Empty
现在为了进行测试,我修改了 new 中的 test/main.js。现在当我运行:
rsync -rvcim --delete --compare-dest=../NEW/ OLD/ DEST/
我得到以下日志输出:
building file list ... done
>fcsT....... test/main.js
太棒了!它只找到了不同的 main.js 文件,因为校验和不同,然后发送了它!
但实际上它还复制并清空 src 文件夹,使得最终的目录结构如下所示:
DEST/
...src/ //Shouldn't be copied
...test/
...test/main.js
我不想要 src 目录,我只想要更改(用更大的项目测试它,即使它没有在日志中显示文件夹,它也会将所有文件夹复制到该DEST
文件夹中)
答案1
rsync 中没有选项,但有简单的解决方法
rsync -rvcim --delete --compare-dest=../NEW/ OLD/ DEST/ ; find DEST -empty -type d -delete