我的音乐收藏相当多,其中有一些重复文件。有什么方法可以找到重复文件吗?至少可以进行哈希运算,看看两个文件是否具有相同的哈希值。
还可以找到除扩展名外具有相同名称的文件来获得加分 - 我认为我有一些歌曲同时具有 mp3 和 ogg 格式的版本。
如果这是最简单的方法,我很乐意使用命令行。
答案1
重复项
我使用fdupes
它。它是一个命令行程序,可以使用从存储库安装sudo apt install fdupes
。您可以像这样调用它fdupes -r /dir/ect/ory
,它将打印出重复项列表。fdupes 还有一个GitHub 上的自述文件和一个维基百科文章,其中列出了更多程序。
答案2
列表programs/scripts/bash-solutions
,可以查找重复项并在下运行nix
:
- 重复编辑:一次性比较多个文件而不进行校验。当多个路径指向同一个文件时,避免将文件与自身进行比较。
- 复制合并:可在各种平台上运行(带有 Cygwin 的 Win32/64、*nix、Linux 等)
- 重复查找:使用优化的算法来减少读取的Perl。
- 自由基清除:基于 Perl/c,可在大多数平台(Win32、*nix 和其他平台)上运行。使用 MD5、SHA1 和其他校验和算法
- 释放:shell 脚本,搜索您指定的目录。当它找到两个相同的文件时,它会将它们硬链接在一起。现在,两个或多个文件仍存在于各自的目录中,但磁盘上只存储了一份数据副本;两个目录条目都指向相同的数据块。
- 语法:具有命令行界面和GUI。
- 莱滕:纯 Python 重复数据删除命令行工具和库,使用 md5 校验和以及新颖的字节比较算法。(Linux、Mac OS X、*nix、Windows)
- liten2:对原始 Liten 进行重写,仍然是一个命令行工具,但使用 SHA-1 校验和具有更快的交互模式(Linux、Mac OS X、*nix)
- 查找:少数根据输入参数(要扫描的目录)的顺序对重复项进行排序的方法之一,以便不会在“原始/众所周知”的来源中删除(如果给出了多个目录)。使用 MD5 或 SHA1。
- 林特:使用命令行界面的快速查找器,以及许多用于查找其他 lint 的选项(使用 MD5),因为 18.04 LTS 有一个
rmlint-gui
带有 GUI 的软件包(可以通过rmlint --gui
名为碎纸机重复查找器) - 啊:Unix/Linux 命令行工具,旨在与 find(及类似工具)配合使用。
- 芬德雷佩:免费的基于 Java 的命令行工具,旨在有效搜索重复文件,可以在 zip 和 jar 中搜索。(GNU/Linux、Mac OS X、*nix、Windows)
- 重复:用 Perl 编写的小脚本。快速高效地完成工作。1
- 深海:使用上下文触发分段散列识别几乎相同的文件
答案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).
答案4
执行此项工作的另一个脚本是重复. 来自作者页面:
rmdupe 使用标准 Linux 命令在指定文件夹中搜索重复文件,无论文件名或扩展名如何。在删除重复候选文件之前,会对其进行逐字节比较。rmdupe 还可以根据一个或多个参考文件夹检查重复文件,可以删除文件而不是删除它们,允许自定义删除命令,并且可以将其搜索限制为指定大小的文件。rmdupe 包含一个模拟模式,该模式报告将对给定命令执行的操作,而无需实际删除任何文件。