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

我有一个较大的音乐collections,那里有一些重复。 有没有办法找到重复的文件。 至少通过执行哈希并查看两个文件是否具有相同的哈希值。

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

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

我为此使用了fdupes 。 它是一个命令行程序,可以使用sudo apt install fdupes从存储库sudo apt install fdupes 。 您可以像fdupes -r /dir/ect/ory一样调用它,它会打印出一个fdupes -r /dir/ect/ory列表。 fdupes还有一个简单的主页和维基百科文章 ,其中列出了一些更多的程序。

FSlint具有GUI和一些其他function。 从FAQ中解释重复检查算法:

 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 安装fslint

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)
  11. ua :Unix / Linux命令行工具,设计用于查找(等)。
  12. findrepe :免费的基于Java的命令行工具,专为高效搜索重复文件而设计,可以在拉链和jar子中搜索。(GNU / Linux,Mac OS X,* nix,Windows)
  13. fdupe :用Perl编写的小脚本。 快速有效地完成工作。 1
  14. ssdeep :使用Context Triggered Piecewise Hashing识别几乎相同的文件

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

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

另一个完成这项工作的脚本是rmdupe 。 来自作者的页面:

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

你有没有尝试过

 finddup 

要么

 finddup -l 

我猜它工作正常。

对于音乐相关的重复识别和删除Picard和Jaikoz通过http://musicbrainz.org/是最好的解决方案。 Jaikoz我相信根据歌曲文件的数据自动标记你的音乐。 您甚至不需要歌曲的名称来识别歌曲并将所有元数据分配给它。 虽然免费版本可以在一次运行中仅标记有限数量的歌曲,但您可以根据需要多次运行它。

我使用komparator – sudo apt-get install komparator ( Ubuntu 10.04+ ) – 作为GUI工具,用于在手动模式下查找重复项。