在两台 Linux 机器之间查找重复数据文件的最佳方法?

在两台 Linux 机器之间查找重复数据文件的最佳方法?

我家里有两个 Debian 盒子,里面有各种照片、音频、视频和其他数据文件。它们都很混乱,我想整理它们并删除它们之间的重复文件。这两个盒子上的文件夹结构都不太合理。

是否有捷径可寻?

答案1

有很多变体。我认为 md5 是正确的,但使用 SHA 和可能略好一些。SHA1 的速度可能差不多,而且不太可能发生碰撞 - 尽管无论哪种方式发生碰撞的可能性都是无穷小的。

我会采取以下措施 -

  1. 在每个框上创建一个文件及其 sha1 值列表,使用以下命令

查找/path/to/files -type f -exec sha1sum {} + > pcX-sha1.lst

  1. 然后,我将两个文件复制到一个盒子上。完成后,我会找到一个 SHA 校验和列表,其中仅显示重复的文件。一旦文件位于同一目录中,就会出现类似

剪切 -f1 -d" " pcX-sha1.lst pcY-sha1.lst | 排序 | uniq -d > duplicateshas.lst

最后一个列表是查找重复的文件,你可以使用以下命令执行此操作

对于$(cat duplicateshas.lst)中的每个;执行grep $each pcX-sha1.lst;完成

以上内容将列出从 pcX-sha1.lst 中找到的文件及其名称。当然,您可以使用其中一个文件(或者,如果您想查看文件在两个位置的位置以及它们具有不同的文件名,则可以同时使用这两个文件)。

相关内容