9

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

Если я скопирую все эти файлы в один каталог, есть ли инструмент, позволяющий распознать дубликаты файлов и дать мне список или даже удалить один из дубликатов?

7 ответов7

3

Создайте md5sum для каждого файла, дубликаты md5sum предлагают (но не гарантирует) дубликаты файлов.

2

Вы можете использовать Dupemerge, чтобы превратить идентичные файлы в жесткие ссылки. Хотя это займет очень много времени на большом наборе файлов. Хэши файлов SHA (или MD5) почти наверняка будут работать быстрее, но вам придется приложить больше усилий, чтобы найти дубликаты. Вероятность случайного столкновения настолько мала, что на самом деле вы можете ее игнорировать. (На самом деле, многие продукты дедупликации уже делают это.)

Лучшее решение для работы с фотографиями и музыкой - использовать инструменты, специально предназначенные для поиска дубликатов этих элементов. Тем более, что у вас могут не быть файлов, которые идентичны на двоичном уровне, после того, как такие вещи, как разметка, обрезка или различия в кодировке, вступят в игру. Вам понадобятся инструменты, которые могут находить фотографии, которые "выглядят" одинаково, и музыку, которая "звучит" одинаково, даже если в файлы были внесены незначительные изменения.

1

Что ж, если у вас есть такая возможность, вы можете настроить дедуплицирующую файловую систему и поместить в нее свои резервные копии. Это приведет не только к дедупликации целых файлов, но и к аналогичным фрагментам файлов. Например, если у вас есть один и тот же JPEG в нескольких местах, но с разными тегами EXIF в каждой версии, дедуплицирующая файловая система сохранит данные изображения только один раз.

Дедупликация файловых систем включает lessfs, ZFS и SDFS.

0

Жесткие ссылки выполняют дедупликацию, только если весь файл идентичен. Если заголовки (EXIF, ID3,…) или метаданные (владелец) различаются, они не будут связаны.

Если у вас есть возможность использовать файловую систему с поддержкой дедупликации блоков (ZFS, btrfs,…), используйте ее вместо этого. Мне очень нравится автономная (aka batch) поддержка дедупликации btrfs, которая поддерживает дедупликацию на уровне экстентов и не постоянно потребляет огромные объемы памяти (как дедупликация ZFS онлайн).

Дедупликация также имеет то преимущество, что файлы могут быть изменены пользователем без уведомления другой копии (что может быть неприменимо в вашем случае, но в других).

Смотрите https://btrfs.wiki.kernel.org/index.php/Deduplication для отличного обсуждения.

0

Когда я занимался такими вещами, я понял, что гораздо интереснее / экономичнее просто просматривать файлы в свободное время в течение пары недель. Вы можете отличить вещи лучше, чем ваш компьютер.

Если вы не согласны, то я предлагаю EasyDuplicateFinder. Как я уже упоминал выше, для 5 ГБ файлов, скажем, потребуется много времени, скажем, около суток.

И с другой стороны, Crashplan делает то, что вы делали раньше, но гораздо более организованно, без проблем с версиями.

0

Еще одна возможность, если предположить, что машины, которые вы резервируете, будет поддерживать его, - это использовать что-то вроде rsync .

Если вы выполните rsync из A в B, затем из C в B, затем из D в B и т.д., Точные дубликаты (т. Е. По имени файла) будут удалены (и синхронизированы между машинами, для которых вы создаете резервную копию).

Если вы не хотите, чтобы они все синхронизировались друг с другом, это не лучший способ.

0

Для файлов изображений используйте findimagedupes. Он также упакован в Debian.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .