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


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

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

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


121
2017-09-08 19:11


происхождения




ответы:


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


128
2017-09-08 19:20



Он также имеет параметр «-d», который позволяет вам выбрать, какую копию вы хотите сохранить, и удаляет другие (или вы можете сохранить их все, если хотите). - Matthew Crumley
Как я могу использовать параметр -d, чтобы исправить мою проблему Вот - John McKean Pruitt
Возможно ли, чтобы fdupes отображал дубликаты папок вместо дубликатов файлов? - Anderson Green
Можете ли вы подробнее объяснить, как удалить все дубликаты (оставляя только одну копию каждого файла) в дереве рекурсивных каталогов? Я хочу сделать это автоматически, то есть без необходимости указывать каждый раз, какой файл сохранить. Он должен просто выбрать один из дубликатов. - becko
fdupes -r . -d -N должен сохранить первый экземпляр и удалить обманы. Я просто удалил одну папку, используя fdupes . -d -N не рекурсивно - Simon B


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  Install fslint


58
2017-09-08 19:31



Благодарю. Обратите внимание, что имя команды - «fslint-gui», а инструменты командной строки не находятся в $ PATH по умолчанию - они находятся в / usr / share / fslint / fslint. Я был сбит с толку, когда мне не помогли, на какой пакет он находился, просто запустив fslint (через / usr / lib / command-not-found). - nealmcb
именно то, что необходимо - Tebe
@nealmcb Если вы используете sudo apt-get install fslint, в настоящее время установка fslint-gui в путь, и поэтому я могу запустить его из любого места, просто набрав fslint-gui, Вы можете найти, где fslint-gui жизни, набрав which fslint-gui (это похоже на скрипт Python). - user29020


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

48
2018-04-03 01:22



Может ли любая из этих программ найти дубликаты папок (а не только дублировать файлы?) - Anderson Green
@AndersonGreen rmlint могут найти дубликаты dirs. rmlint -T dd - oligofren
для Ubuntu другим способом является открытие файлов, поиск (control-f) для заданного расширения (например, .mp3), а затем сортировка имени файла; это позволит удалять дубликаты вручную и в то же время отображать местоположения дубликатов. - axd


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

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


6
2017-09-08 21:46





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

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


4
2018-04-22 07:34





Ты пробовал

finddup

или

finddup -l

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


3
2017-07-05 04:34





Для дублирования и удаления дубликатов музыки Пикарда и Джайкоса http://musicbrainz.org/ является лучшим решением. Jaikoz Я считаю, что автоматически помечает вашу музыку на основе данных файла песни. Вам даже не нужно имя песни, чтобы определить песню и назначить ей все метаданные. Хотя бесплатная версия может отмечать только ограниченное количество песен за один проход, но вы можете запускать ее столько раз, сколько хотите.


2
2018-04-22 07:47





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


2
2017-12-29 12:15