场景
现有两个源代码文件夹:"d:\workspace\GoduServer3.0\src"和 "d:\workspace\Godu_Server_2.3\src",分别包含多级子目录, 需要比较所有子目录中文件内容的差异(不能只比较文件的大小和修改时间)。
Linux
diff -rq, see " Diff Notes ";
解决方案
Windows
TotalCmd
-
分别打开要比较的两个文件夹,[Commands -> Synchronize dirs] (Shift+F12);
-
取消"Asymmetric",选中"subdirs", "by content" and "ignore date",点击"compare";
-
TotalCmd会列出所有不同的文件,要比较不同的文件, 选中然后右键 -> Compare Left & Right (Ctrl+F3);
-
根据文件内容确定同步的方向,点击"Synchronize";
UltraCompare
用UltraCompare Pro的绿色版,
解压后在uc.exe所在目录下运行:
uc -d -r -ne -dmf -B d:\workspace\GoduServer3.0\src d:\workspace\Godu_Server_2.3\src
指令格式:uc [options] dir1 dir2
选项含义:
-d:文件夹比较模式(而不是文本比较);
-r:包含所有子文件夹;
-ne:只显示不同的文件;
-dmf:文本比较模式(逐字节比较,另外还有:-dmb:基本比较模式,只比较文件大小和日期;-dms:智能比较模式)
-B:文本比较时忽略空行;
详见UltraCompare帮助文档“命令行选项”一节。
UC支持界面操作,上面各个选项在工具栏上都有图标, 选中后点击两个路径输入框中间的绿色三角按钮就开始比较了(Ctrl+F5), 比较完之后可以用工具栏上的各种合并按钮进行合并操作。
备选方案
免费软件FreeFileSync也具备比较文件内容和子文件夹循环比较的能力, 但只能找到不用的文件,不能对选定的文件进行文本比较。