![比较具有不同目录结构的磁盘是否丢失文件](https://linux22.com/image/166751/%E6%AF%94%E8%BE%83%E5%85%B7%E6%9C%89%E4%B8%8D%E5%90%8C%E7%9B%AE%E5%BD%95%E7%BB%93%E6%9E%84%E7%9A%84%E7%A3%81%E7%9B%98%E6%98%AF%E5%90%A6%E4%B8%A2%E5%A4%B1%E6%96%87%E4%BB%B6.png)
对于这篇文章的长度,我深表歉意,我已尽力使其简短。
我正在寻找一种工具/方法,在给定两个路径的情况下,它会显示哪些文件不存在于其中一个路径中。需要注意的是,目录的组织并不相同。相同的文件可能存在于两个“给定路径”中的不同深度和不同命名的目录中。 AFAIK diff、rsync、meld、freefilesync 和重复查找器不会执行此操作(很高兴能正确执行此操作)。
我进行了相当多的搜索,但找不到任何旨在执行此操作的东西。可以利用像 rmlint 这样的程序来完成这项工作,并进行额外的工作来对输出进行后处理,但我希望有一种更干净的方法来完成它。由于有大量文件(大约 500 万个,可能有 150 万个独特文件)占用约 6TB 的空间,因此最好找到一个能够合理有效地完成此操作的工具。
基于名称和大小的基本匹配就足够了,因为我会将唯一文件复制到最终目的地,并稍后使用不同的技术来检查要删除的目录。换句话说,我正在组装最终的备份磁盘并检查旧磁盘以检查它们是否包含主备份中未包含的内容,然后再回收这些旧磁盘以进行备份的脱机副本等。
复制的本质主要是诸如主目录之类的内容的多个副本,间隔几个月并以完全无逻辑的方式存储(在任何时间从多台机器上复制大约 25 年)。因此,也许一个副本一次存储在一个磁盘上,然后另一个日期存储在另一个磁盘上,然后返回到原始磁盘进行下一个等等。我正在手动识别这些几乎重复的副本,但是一旦我拥有它们,我需要检查它们的内部,并且我似乎经常在备份之间重新排列这些主目录中的数据。
任何软件建议或失败的如何处理它的建议都将非常受欢迎。目前我想知道自己用 sqlite 后端编写一些东西,但问题是错误等,如果本领域已知更强大的产品或方法,我更愿意走这条路。