如何递归比较两个具有相同结构的文件夹?
使用diff
或git diff
从命令行bash
?
答案1
要比较两个文件,我们使用 diff 命令。我们如何比较两个目录?具体来说,我们想知道哪些文件/子目录是共同的,哪些只在一个目录中,而在另一个目录中不适用。
diff dir1 dir2
如果你对文件差异不感兴趣,请使用
diff -q dir1 dir2 |sort
diff 按文件/子目录名称的字母顺序对输出进行排序。我更喜欢根据它们是否常见以及它们是否仅存在于第一个或第二个目录中来分组。这就是为什么我在上面的命令中通过 sort 将 diff 的输出传递到管道。
请注意,默认情况下 diff 不会进入子目录来比较该级别的文件和子目录。要将其行为更改为递归进入子目录,请添加 -r。
diff -qr dir1 dir2 |sort
我希望这有帮助。
答案2
您只需这样做:
git diff --no-index FOLDER1 FOLDER2
答案3
使用以下命令:
diff -r folder1 folder2
答案4
diff -Nur directory1 directory2