Rsync 创建空文件夹

Rsync 创建空文件夹

我有以下目录。我的目标是比较OLDvsNEW目录并保存目录中的不同文件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

相关内容