12

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

Пока я нашел:

Кто-нибудь знает о каких-либо других?

Это, вероятно, будет отличным дополнением к 7-zip.

3 ответа3

12

Почти все современные архиваторы делают именно это, единственное отличие состоит в том, что они называют это "сплошным" архивом, так как все файлы объединяются в один поток перед подачей в алгоритм сжатия. Это отличается от стандартного сжатия zip, который сжимает каждый файл один за другим и добавляет каждый сжатый файл в архив.

7-zip по своей природе эффективно устраняет дублирование. Например, 7-Zip будет искать файлы, сортировать их по типам файлов и именам файлов, поэтому два файла одного типа и данных будут размещаться рядом в потоке, идущем к алгоритмам компрессора. Затем компрессор увидит много данных, которые он видел совсем недавно, и эти два файла значительно увеличат эффективность сжатия по сравнению со сжатием файлов один за другим.

Linux долгое время сталкивался с подобным поведением благодаря преобладанию их формата ".tgz" (или ".tar.gz", чтобы использовать его полную форму), поскольку tar просто объединяет все файлы в один поток (хотя и без сортировка и группировка файлов), а затем сжатие с помощью gzip. Чего не хватает, так это сортировки, выполняемой 7-zip, которая может немного снизить эффективность, но все же намного лучше, чем просто объединение большого количества отдельно сжатых файлов вместе, как это делает zip.

4

7-Zip, zip, gzip и все другие архиваторы не обнаруживают идентичные области, расположенные далеко друг от друга, например, несколько мегабайт или выше, внутри одного и того же файла или расположенные в разных местах внутри разных файлов.

Так что нет, обычные архиваторы не работают так же хорошо, как exdupe и другие, в некоторых ситуациях. Вы можете увидеть это, если вы сжимаете некоторые виртуальные машины или другие вещи.

4

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

Например, если вы берете файл размером 1 МБ и каждый раз копируете его 100 раз с другим именем (всего 100 МБ дискового пространства), то вы сжимаете его в 7-zip или zip-файл, у вас будет 1 МБ общий zip-файл. Это связано с тем, что все ваши данные были помещены в одну словарную запись и на них ссылались 100 раз, что занимает очень мало места.

Это очень простое объяснение того, что происходит, но суть все еще хорошо изложена.

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