比较一个文件夹与另一个文件夹及其子文件夹的内容

比较一个文件夹与另一个文件夹及其子文件夹的内容

我的情况是这样的:

我有一张简单的 SD 卡,里面装满了我几年前从相机中拍摄的照片和视频,我发现有些照片从未导入到硬盘中。现在我想将所有这些 GB 的照片与硬盘中的图片库进行比较,该图片库包含一个带有许多子文件夹的文件夹,以便突出显示从未从相机 SD 卡导入的照片并在其中进行选择。

尽管这听起来很简单,但我还没有找到真正的方法来实现它。

我是 Windows 用户,我尝试过 FreeFileSync,我已经使用过很多次了,但是,虽然它确实能够提供帮助,但它需要手动添加每个要比较的子文件夹,而对我来说,子文件夹太多了。

我还尝试了 WinMerge,它的行为方式与 FreeFileSync 几乎相同,但它允许在比较过程中自动包含子文件夹。
它的问题是它不将源文件夹文件与目标子文件夹进行比较,而是只将源文件夹的内容与目标文件夹的根内容进行比较,然后将子文件夹作为整体添加到列表中,而不识别源文件夹的重复项。
这就是让我突出显示那些仍需导入的文件的原因,因为它们将是属于源文件夹的唯一非重复文件。WinMerge
对目标子文件夹的操作是将它们作为整个文件夹复制到源路径。

然后我尝试了一些重复文件查找器,因为我需要一些可以在比较时保留文件内容记忆的软件,我发现最好的软件是 Duplicate Cleaner Free 和 Easy Duplicate Finder。这两个软件在其他情况下都非常有用,比如我的 iTunes 的重复文件分散在驱动器各处,彻底破坏了我的资料库。
它们的问题是它们确实可以很好地识别重复文件,但无法显示哪些文件不是重复文件。
不过我发现 Duplicate Cleaner Free 允许您将重复文件列表导出到 CSV。

我想知道是否有人知道更好的方法来实现这一点(也许是我不知道的更好的软件)或者是否有人可以帮助我了解该 CSV 是否真的有用。

我尝试导出一个列表,提供的数据非常详尽,但很难使用。
问题是 Duplicate Cleaner Free 还发现了许多从目的地到目的地的重复项,因此 CSV 也会列出它们。这让我觉得用那个 CSV 来自动化一个过程并不容易,但愿我错了。

谢谢


如果没有 Windows 解决方案,我很乐意找到解决此问题的 Linux 解决方案。我能够在 Linux 中执行基本任务。


我相信图片能有所帮助,所以这是一张

情况

我需要一个程序来帮助我完成这张图片中展示的操作

答案1

在 Linux 下:

  1. cd /your/sd/path
  2. ls > ~/sd-card.txt
  3. cd /your/pictures/root/folder
  4. ls */ > ~/hdd.txt (此步骤可能需要一些时间)
  5. cd ~
  6. sdiff sd-card.txt hdd.txt > comparison.txt

左侧将显示缺失的文件。您可以使用文本编辑器突出显示所有出现的“<”符号(用于显示左侧文件中存在差异的标记)。

应该有帮助!

相关内容