如何查找(和删除)重复文件

如何查找(和删除)重复文件

我的音乐收藏相当多,其中有一些重复文件。有什么方法可以找到重复文件吗?至少可以进行哈希运算,看看两个文件是否具有相同的哈希值。

还可以找到除扩展名外具有相同名称的文件来获得加分 - 我认为我有一些歌曲同时具有 mp3 和 ogg 格式的版本。

如果这是最简单的方法,我很乐意使用命令行。

答案1

重复项

我使用fdupes它。它是一个命令行程序,可以使用从存储库安装sudo apt install fdupes。您可以像这样调用它fdupes -r /dir/ect/ory,它将打印出重复项列表。fdupes 还有一个GitHub 上的自述文件和一个维基百科文章,其中列出了更多程序。

答案2

列表programs/scripts/bash-solutions,可以查找重复项并在下运行nix

  1. 重复编辑:一次性比较多个文件而不进行校验。当多个路径指向同一个文件时,避免将文件与自身进行比较。
  2. 复制合并:可在各种平台上运行(带有 Cygwin 的 Win32/64、*nix、Linux 等)
  3. 重复查找:使用优化的算法来减少读取的Perl。
  4. 自由基清除:基于 Perl/c,可在大多数平台(Win32、*nix 和其他平台)上运行。使用 MD5、SHA1 和其他校验和算法
  5. 释放:shell 脚本,搜索您指定的目录。当它找到两个相同的文件时,它会将它们硬链接在一起。现在,两个或多个文件仍存在于各自的目录中,但磁盘上只存储了一份数据副本;两个目录条目都指向相同的数据块。
  6. 语法:具有命令行界面和GUI。
  7. 莱滕:纯 Python 重复数据删除命令行工具和库,使用 md5 校验和以及新颖的字节比较算法。(Linux、Mac OS X、*nix、Windows)
  8. liten2:对原始 Liten 进行重写,仍然是一个命令行工具,但使用 SHA-1 校验和具有更快的交互模式(Linux、Mac OS X、*nix)
  9. 查找:少数根据输入参数(要扫描的目录)的顺序对重复项进行排序的方法之一,以便不会在“原始/众所周知”的来源中删除(如果给出了多个目录)。使用 MD5 或 SHA1。
  10. 林特:使用命令行界面的快速查找器,以及许多用于查找其他 lint 的选项(使用 MD5),因为 18.04 LTS 有一个rmlint-gui带有 GUI 的软件包(可以通过rmlint --gui名为碎纸机重复查找器
  11. :Unix/Linux 命令行工具,旨在与 find(及类似工具)配合使用。
  12. 芬德雷佩:免费的基于 Java 的命令行工具,旨在有效搜索重复文件,可以在 zip 和 jar 中搜索。(GNU/Linux、Mac OS X、*nix、Windows)
  13. 重复:用 Perl 编写的小脚本。快速高效地完成工作。1
  14. 深海:使用上下文触发分段散列识别几乎相同的文件

答案3

FSlint具有 GUI 和一些其他功能。其常见问题解答中对重复检查算法的解释:

1. exclude files with unique lengths
2. handle files that are hardlinked to each other
3. exclude files with unique md5(first_4k(file))
4. exclude files with unique md5(whole file)
5. exclude files with unique sha1(whole file) (in case of md5 collisions).

fslint 安装说明

答案4

执行此项工作的另一个脚本是重复. 来自作者页面:

rmdupe 使用标准 Linux 命令在指定文件夹中搜索重复文件,无论文件名或扩展名如何。在删除重复候选文件之前,会对其进行逐字节比较。rmdupe 还可以根据一个或多个参考文件夹检查重复文件,可以删除文件而不是删除它们,允许自定义删除命令,并且可以将其搜索限制为指定大小的文件。rmdupe 包含一个模拟模式,该模式报告将对给定命令执行的操作,而无需实际删除任何文件。

相关内容