У меня большая музыкальная коллекция, и там есть несколько дубликатов. Есть ли какой-нибудь способ найти дубликаты файлов? Как минимум, выполнив хэш и проверив, имеют ли два файла одинаковый хэш.
Бонусные баллы за то, что вы также находите файлы с таким же именем, кроме расширения - я думаю, что у меня есть несколько песен как в формате mp3, так и в формате ogg.
Я с удовольствием использую командную строку, если это самый простой способ.
Я использую fdupes за это. Это программа командной строки, которая может быть установлена из репозиториев с sudo apt install fdupes. Вы можете назвать это так fdupes -r /dir/ect/ory и он распечатает список обманутых. fdupes также имеет простая домашняя страница и в Статья в Википедии, в котором перечислены еще несколько программ.
FSlint имеет графический интерфейс и некоторые другие функции. Объяснение алгоритма проверки дубликатов из их часто задаваемых вопросов:
1. exclude files with unique lengths2. handle files that are hardlinked to each other3. 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).
Список из programs/scripts/bash-solutions, который может находить дубликаты и работать под nix:
обманутый: Сравнивает сразу много файлов без контрольной суммы. Позволяет избежать сравнения файлов с самими собой, когда несколько путей указывают на один и тот же файл.
дюпмерж: работает на различных платформах (Win32/64 с Cygwin, *nix, Linux и т.д.)
дурачок: Perl с алгоритмом, оптимизированным для уменьшения количества операций чтения.
fdf: Основан на Perl/c и работает на большинстве платформ (Win32, *nix и, возможно, другие). Использует MD5, SHA1 и другие алгоритмы контрольной суммы
высвобождения: сценарий оболочки, который выполняет поиск по указанным вами каталогам. Когда он находит два одинаковых файла, он жестко связывает их вместе. Теперь два или более файлов по-прежнему существуют в соответствующих каталогах, но на диске хранится только одна копия данных; обе записи каталога указывают на одни и те же блоки данных.
fslint: имеет интерфейс командной строки и графический интерфейс.
маленький: Чистый инструмент командной строки дедупликации Python и библиотека, использующие контрольные суммы md5 и новый алгоритм сравнения байтов. (Linux, Mac OS X, *nix, Windows)
литен2: Перезапись оригинального Liten, по-прежнему являющегося инструментом командной строки, но с более быстрым интерактивным режимом, использующим контрольные суммы SHA-1 (Linux, Mac OS X, *nix)
rdfind: Один из немногих, который ранжирует дубликаты на основе порядка входных параметров (каталогов для сканирования), чтобы не удалять в "оригинальных / хорошо известных" источниках (если указано несколько каталогов). Использует MD5 или SHA1.
rmlint: Быстрый поисковик с интерфейсом командной строки и множеством опций для поиска других линтов (использует MD5), поскольку 18.04 LTS имеет rmlint-gui пакет с графическим интерфейсом (может быть запущен с помощью rmlint --gui или из настольного лаунчера с именем Измельчитель Для поиска дубликатов)
ua: Инструмент командной строки Unix /Linux, предназначенный для работы с find (и тому подобным).
найди способ: бесплатный инструмент командной строки на основе Java, предназначенный для эффективного поиска дубликатов файлов, он может выполнять поиск в zip-архивах и jar-файлах.(GNU/Linux, Mac OS X, *nix, Windows)
fdupe: небольшой скрипт, написанный на Perl. Делает свою работу быстро и эффективно.1
ssdeep: идентификация почти идентичных файлов с помощью кусочного хэширования, инициируемого контекстом.
Если ваша задача дедупликации связана с музыкой, сначала запустите пикард приложение для правильной идентификации и пометки вашей музыки (чтобы вы могли находить дубликаты файлов .mp3 /.ogg, даже если их имена неверны). Обратите внимание, что picard также доступен в виде пакета Ubuntu.
Это сделано на основе musicip_puid по тегу вы можете легко найти все ваши повторяющиеся песни.
Другой сценарий, который выполняет эту работу, - это rmdupe. Со страницы автора:
rmdupe использует стандартные команды Linux для поиска дубликатов файлов в указанных папках, независимо от имени файла или расширения. Перед удалением повторяющихся кандидатов они сравниваются байт за байтом. rmdupe также может проверять дубликаты в одной или нескольких ссылочных папках, может удалять файлы в корзину вместо их удаления, позволяет использовать пользовательскую команду удаления и может ограничить поиск файлами указанного размера. rmdupe включает режим моделирования, который сообщает, что будет сделано для данной команды, фактически не удаляя никаких файлов.
Для идентификации и удаления дубликатов, связанных с музыкой, Picard и Jaikoz по http://musicbrainz.org/ это лучшее решение. Jaikoz, я полагаю, автоматически помечает вашу музыку на основе данных файла песни. Вам даже не нужно название песни, чтобы она идентифицировала песню и присвоила ей все метаданные. Хотя бесплатная версия может отмечать только ограниченное количество песен за один прогон, но вы можете запускать ее столько раз, сколько захотите.
дупеГуру имеет специальный режим для воспроизведения музыки. Это кроссплатформенная программа с графическим интерфейсом, и по состоянию на сегодняшний день (февраль 2021 года) она находится в активном развитие, хотя неясно, какие релизы работают на каких системах. Проверьте его документация.