“文件夹对比并提取差异”的版本间的差异
跳到导航
跳到搜索
docker>Evan (创建页面,内容为“==文件夹对比并提取差异== <pre> STEP1 A1.1是新文件夹,A1.0是旧文件夹,out是放置 A1.0到A1.1的保持目录结构的增量文件。 rsync -...”) |
小 (导入1个版本) |
2019年10月14日 (一) 13:55的最新版本
文件夹对比并提取差异
STEP1 A1.1是新文件夹,A1.0是旧文件夹,out是放置 A1.0到A1.1的保持目录结构的增量文件。 rsync --dry-run -rcnC --out-format="%n" A1.1/ A1.0/ 注意该处的-C参数是按照cvs的ignore规则来过滤不需要同步的文件,在CVS中,默认是不会提交二进制文件的,所以如果需要进行二进制文件提取,那就不要加C. 执行了该命令后,得到了一个A1目录的文件列表: A1.1/system/app/ A1.1/system/app/A.apk A1.1/system/app/B.apk A1.1/system/app/C.apk 也就是差异文件,由于这里默认会显示出文件夹,所以要过滤掉以『/』结尾的文件夹的显示 rsync --dry-run -rcnC --out-format="%n" A1.1/ A1.0/ |grep -v "/$" 这样就得到了一个纯增量文件的列表 STEP2 有了文件列表,复制的操作方法就很多了。可以继续使用rsync同步到新的out目录,以防止多次执行后错误文件修复问题 完整代码 rsync --dry-run -rcnC --out-format="%n" A1.1/ A1.0/ |grep -v "/$"|xargs -I{} rsync -R A1/./{} out/
参考
-n, --dry-run perform a trial run with no changes made
怎么样实现rsync 只比较两个目录下面的文件是否相同,而不去同步
http://bbs.chinaunix.net/thread-1345431-1-1.html