2014-12-13 2 views
4

У меня есть довольно большая папка (~ 10 ГБ), которая содержит много дублированных файлов в дереве каталогов. Многие из этих файлов дублируются в 10 раз. Дублированные файлы не находятся рядом друг с другом, но в разных подкаталогах.Сжатие папки со многими дублируемыми файлами

Как сжать папку, чтобы сделать ее достаточно маленькой?

Я попытался использовать Winrar в режиме «Лучший», но он вообще не сжимал его. (Довольно странно)

Будет ли zip \ tar \ cab \ 7z \ любой другой инструмент сжатия работать лучше?

Я не против позволить инструменту работать в течение нескольких часов - но не более.

я, а не делать это программно себя

ответ

3

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

Но есть также возможность создать архив . Открытая помощь WinRAR и открыт на Содержание вкладке пункт, типы и параметры архива и нажмите на твердых архивов. Эта справочная страница объясняет, что такое сплошной архив и какие преимущества и недостатки имеет этот формат архивного файла.

Прочный архив с большим размером словаря в сочетании с наилучшим сжатием может сделать файл архива со списком подобных файлов очень маленьким. Например, у меня есть список из 327 двоичных файлов с размерами файлов от 22 КБ до 453 КБ, которые в общей сложности 47 МБ не включают размер кластера раздела. Я могу сжать эти 327 похожих, но не идентичных файлов, в архив RAR со значением словаря размером 4 МБ, имеющим только 193 КБ. Это, конечно, резкое сокращение размера.

Перейдите по странице справки о rarfiles.lst после просмотра страницы справки о сплошном архиве. В нем описывается, как вы можете контролировать, в каком порядке файлы помещаются в массивный архив. Этот файл находится в папке программных файлов WinRAR и может быть настроен по вашим потребностям.

Вы должны заботиться также о опционных файлах для хранения без сжатия в случае использования GUI версии WinRAR. Эта опция может быть найдена после нажатия на символ/команду . Добавить на вкладке Файлы. Существуют определенные типы файлов, которые просто хранятся в архиве без какого-либо сжатия, например * .png, * .jpg, * .zip, * .rar ... Эти файлы обычно содержат уже данные в сжатом формате, и поэтому они не имеют смысл сжать их еще раз. Но если дубликат * .jpg существует в структуре папок и создан сплошной архив, имеет смысл удалить все расширения файлов из этой опции.

Кстати: Есть приложения, такие как Total Commander, UltraFinder или UltraCompare и другие, которые поддержка поиска дубликатов файлов по различным, выбираемых пользователем критериев, как найти файлы с одинаковыми именами и того же размера, или большинство защищать, находить файлы с одинаковым размером и одним контентом и предоставлять функции для удаления дубликатов.

1

Try eXdupe из www.exdupe.com, он использует дедупликации и так быстро, что практически диск I/O оценка

2

У дублированных файлов одинаковые имена? Обычно они меньше 64 МБ? Затем вы должны отсортировать по имени файла (без пути), используйте tar для архивации всех файлов в этом порядке в файл .tar, а затем используйте xz для сжатия, чтобы сделать сжатый архив .tar.xz. Дублированные файлы, которые находятся рядом с файлом .tar и меньше размера окна для используемого уровня сжатия xz, должны сжиматься почти до нуля. Размеры словарей «DictSize» вы можете увидеть для уровней сжатия в this xz man page. Они варьируются от 256 КБ до 64 МБ.

+0

Большое спасибо! Это помогло мне сжать архив tar.gz со многими повторяющимися html-файлами (одно и то же имя, но разными каталогами) с более 1 ГБ до 450 МБ. – haraldkl

+0

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

+0

Извините, другая большая часть этого архива была из больших двоичных файлов (без дубликатов). Я не делал никаких дальнейших исследований, просто был рад сжать данные, чтобы они поместились на одном компакт-диске. Ура! – haraldkl

4

7-zip поддерживает формат файла WIM, который будет обнаруживать и «сжимать» дубликаты. Если вы используете 7-zip GUI, вы просто выбираете формат файла «wim».

Только если вы используете командную строку 7-zip, см. Этот ответ. https://serverfault.com/questions/483586/backup-files-with-many-duplicated-files

1

Я предлагаю 3 варианта, которые я пробовал (в Windows):

  1. 7zip сжатия LZMA2 размером словарное 1536Mb
  2. WinRar "твердый" Файл
  3. 7zip WIM файла

У меня было 10 папок с различными версиями веб-сайта (с файлами, такими как .php, .html, .js, .css, .jpeg, .sql и т.д.) с общим размером 1Gb (100Mb среднем в папке). В то время как стандартное сжатие 7zip или WinRar дало мне файл размером около 400/500 Мб, эти параметры дали мне файл (1) 80Mb, (2) 100Mb & (3) 170Mb соответственно.