源路径和目标路径有超过 10 万个不同的目录。我想比较源路径和目标路径之间的文件,而不考虑目录之间的差异。
换句话说,我想匹配源路径中的文件是否在目标路径中,即使用它们包含的文件,无论它们位于层次结构中的什么位置。
如果存在差异,则这些差异将被输出到文本文件。
我需要能够使用跨平台解决方案,例如 Windows 和 Linux。
我怎样才能实现这个目标?
答案1
在两个系统上创建一个包含相同格式的所有路径的文件。
例如find
在 Linux 上使用,find
在 Windows 上使用 WSL 或 Cygwin。或者为此编写一个可以在两个系统上安装的简单工具。
然后用来diff
比较两个文本文件的所有路径。
答案2
您可以使用文件哈希来比较文件并找到它们,即使文件夹结构已经发生变化。
可以找到许多哈希实用程序。例如,在 Windows 上,您可以使用 hellzerg/哈希,并在文章中进行了评论 使用 Windows 哈希函数生成并比较文件哈希值:
答案3
在 Windows 上,您可以使用 Total Commander(同步目录选项)和 Samba 连接到 Linux/Mac:
- 您将看到哪些文件缺失以及哪些文件存在于一侧
- 您将看到文件大小
- 您将看到双方最后修改的日期和时间
- 您可以看到左边的文件和右边的文件(文本,图像)
- TC 将允许您配置文件属性的比较选项
- 结果你可以同步比较的双方
https://www.ghisler.com/download.htm
Double Commander 还有以下选项:https://sourceforge.net/p/doublecmd/wiki/Download/