Как найти (и удалить) дубликаты файлов

116

У меня довольно большая музыкальная коллекция, и там есть несколько дубликатов. Есть ли способ найти дубликаты файлов. Как минимум, делая хэш и видя, имеют ли два файла одинаковый хэш.

Бонусные баллы за поиск файлов с тем же именем, кроме расширения - думаю, у меня есть несколько песен с версиями в формате mp3 и ogg.

Я счастлив использовать командную строку, если это самый простой способ.

    
задан Hamish Downer 08.09.2010 в 19:11
источник

8 ответов

121

Для этого я использую fdupes . Это программа командной строки, которая может быть установлена ​​из репозиториев с sudo apt install fdupes . Вы можете назвать его как fdupes -r /dir/ect/ory , и он распечатает список дубликатов. fdupes также имеет простую домашнюю страницу и Статья в Википедии , в которой перечислены еще несколько программ.

    
ответ дан qbi 08.09.2010 в 19:20
источник
55

FSlint имеет графический интерфейс и некоторые другие функции. Объяснение дублирующего алгоритма проверки из их 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 < img src="https://hostmar.co/software-large">

    
ответ дан Dominik 08.09.2010 в 19:31
источник
45

Список 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 : сценарий оболочки, который выполняет поиск по указанным вами каталогам. Когда он находит два одинаковых файла, он жестко связывает их вместе. Теперь два или более файла все еще существуют в своих соответствующих каталогах, но только одна копия данных хранится на диске; обе записи в каталоге указывают на те же блоки данных.
  6. fslint : имеет интерфейс командной строки и графический интерфейс.
  7. liten : инструмент командной строки для дедупликации Pureon и библиотека с использованием контрольных сумм 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, предназначенный для эффективного поиска дубликатов файлов, он может выполнять поиск в почтовых ящиках и банках. (GNU / Linux, Mac OS X, * nix, Windows)
  13. fdupe : небольшой скрипт, написанный на Perl. Выполнение своей работы быстро и эффективно. 1
  14. ssdep : идентифицировать почти идентичные файлы, используя Context Triggered Piecewise Hashing
ответ дан v2r 03.04.2012 в 01:22
источник
6

Если ваша задача дедупликации связана с музыкой, сначала запустите приложение picard , чтобы правильно идентифицировать и пометить свою музыку (чтобы вы нашли дублировать файлы .mp3 / .ogg, даже если их имена неверны). Обратите внимание, что picard также доступен как пакет Ubuntu.

Это сделано, основываясь на теге musicip_puid , вы можете легко найти все свои повторяющиеся песни.

    
ответ дан ΤΖΩΤΖΙΟΥ 08.09.2010 в 21:46
источник
4

Другой скрипт, выполняющий эту работу, rmdupe . На странице автора:

  

rmdupe использует стандартные команды linux для поиска в указанных папках для дубликатов файлов, независимо от имени файла или расширения. Прежде чем удалять дубликаты кандидатов, они сравниваются по байтам. rmdupe также может проверять дубликаты в отношении одной или нескольких справочных папок, может удалять файлы вместо их удаления, позволяет выполнить команду пользовательского удаления и может ограничить поиск файлами указанного размера. rmdupe включает режим моделирования, который сообщает, что будет сделано для данной команды, без фактического удаления каких-либо файлов.

    
ответ дан girardengo 22.04.2014 в 07:34
источник
3

Вы пробовали

finddup

или

finddup -l

Я думаю, это прекрасно работает.

    
ответ дан xerostomus 05.07.2014 в 04:34
источник
2

Для дублирования и удаления дубликатов музыки Picard и Jaikoz по Ссылка - лучшее решение. Jaikoz Я считаю, что автоматически помечает вашу музыку на основе данных файла песни. Вам даже не нужно имя песни, чтобы определить песню и назначить ей все метаданные. Хотя бесплатная версия может отмечать только ограниченное количество песен за один проход, но вы можете запускать ее столько раз, сколько хотите.     

ответ дан Yathi 22.04.2014 в 07:47
источник
2

Я использую komparator - sudo apt-get install komparator ( Ubuntu 10.04+ ) - в качестве GUI-инструмента для поиска дубликатов в ручном режиме.

    
ответ дан N0rbert 29.12.2013 в 12:15
источник

Ознакомьтесь с другими вопросами по меткам