虽然这听起来像是一项可以由 等人完成的任务,但rsync
我diff
并没有成功。
AFAIK,这些工具在比较文件时会考虑目录结构。
因此,如果“文件 A”位于~/Dir-A
而“文件 B”位于 中~/Dir-B/Dir-BB
,则它们将被检测为不同的文件,即使它们具有相同的哈希值。
要求/细节是:
- Ubuntu 20.04
- 比较
Dir-A
和Dir-B
; - 忽略文件的位置(目录结构)。换句话说,我只需要检查文件,而不管它们位于哪个子目录中(因此,在上面的示例中,文件应该被认为是相等的);
- 指定哪些文件在其中,哪些
Dir-A
不在Dir-B
(反之亦然,最好在不同的列表/结果中); - 两者
Dir-A
都有Dir-B
非常不同的结构。在某些特定情况下,Dir-A
应该拥有一切Dir-B
,再加上更多; - 奖励:如果可行,能够检查是否
Dir-A
有来自多个其他目录的所有内容会很好。
总结一下:我的具体情况涉及检查内容和结构非常不同的多个备份和副本。
在某些特定情况下,我需要将一个大文件夹(即完整备份)与其他较小的文件夹进行比较,以检查备份是否包含应有的所有内容。
非常感谢您的关注。
我真的不知道如何在没有脚本的情况下做到这一点,所以这里有一个简短的 python 脚本可以帮助你入门
要使用,请另存为文本文件 compare_files_by_hash.py,然后,
python3 compare_files_by_hash.py Dir-A Dir-B
.我不确定我是否理解这一点,但上面允许多个 Dir-B 目录,即你可以这样做
python3 compare_files_by_hash.py Dir-A Dir-B Dir-B-2 Dir-B-3
,就好像Dir-B Dir-B-2 Dir-B-3
都在Dir-B
.