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

Ham*_*ner 143 filesystem music

我有一个很大的音乐收藏,里面有一些重复的。有什么办法可以找到重复的文件。至少通过进行散列并查看两个文件是否具有相同的散列。

除了扩展名外,还可以找到同名文件的奖励积分 - 我想我有一些 mp3 和 ogg 格式版本的歌曲。

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

qbi*_*qbi 163

我用fdupes这个。它是一个命令行程序,可以使用sudo apt install fdupes. 你可以这样称呼它fdupes -r /dir/ect/ory,它会打印出一个欺骗列表。fdupes 还有一个简单的 Homepage和一个Wikipedia article,其中列出了更多的程序。

  • 它还有一个“-d”选项,可让您选择要保留的副本,并删除其他副本(或者您可以根据需要保留所有副本)。 (11认同)
  • `fdupes -r 。-d -N` 应该保存第一个实例并删除重复项。我刚刚使用 `fdupes 成功清除了一个文件夹。-d -N` 非递归 (9认同)
  • 您能否更详细地解释如何删除递归目录树中的所有重复项(每个文件只保留一个副本)?我想自动执行此操作,即不必每次都指定要保留哪个文件。它应该只选择重复项之一。 (2认同)

小智 66

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).
Run Code Online (Sandbox Code Playgroud)

文件 安装 fslint

  • 谢谢。请注意,命令名称是“fslint-gui”,命令行工具默认不在 $PATH 中——它们在 /usr/share/fslint/fslint 中。当我没有通过运行 fslint(通过 /usr/lib/command-not-found)获得关于它所在的包的帮助时,我感到很困惑。 (12认同)
  • 除了它在 20.04 上没有安装候选。:-( (2认同)

v2r*_*v2r 65

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

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

  • 这些程序中的任何一个都能够找到重复的文件夹(不仅仅是重复的文件?) (4认同)
  • @AndersonGreen `rmlint` 可以找到重复的目录。`rmlint -T dd` (3认同)

ΤΖΩ*_*ΙΟΥ 7

如果您的重复数据删除任务与音乐相关,请首先运行picard应用程序以正确识别和标记您的音乐(以便您找到重复的 .mp3/.ogg 文件,即使它们的名称不正确)。请注意,picard 也可作为 Ubuntu 软件包使用。

完成后,musicip_puid您可以根据标签轻松找到所有重复的歌曲。


gir*_*ngo 6

执行此工作的另一个脚本是rmdupe。从作者的页面:

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