在继续使用SVN之前,我曾经通过简单地保存/develop/
目录,编辑和测试文件,然后将它们移动到/main/
目录来管理我的项目.当我决定转移到SVN时,我需要确保这些目录确实是同步的.
那么,编写shell脚本[bash]以递归比较两个不同目录中具有相同名称的文件有什么好方法?
注意:上面使用的目录名称仅用于示例.我不建议将代码存储在顶层:).
diff命令有一个-r选项来递归比较目录:
diff -r /develop /main
diff -rqu /develop /main
它只会给你一个变化的总结:)
如果您只想查看新文件/丢失文件
diff -rqu /develop /main | grep "^Only
如果你想让它们裸露:
diff -rqu /develop /main | sed -rn "/^Only/s/^Only in (.+?): /\1/p"
我可用的差异允许递归差异:
diff -r main develop
但是用一个shell脚本:
( cd main ; find . -type f -exec diff {} ../develop/{} ';' )