14

Мне нужно сжать каталог с около 350 000 довольно маленьких файлов общим объемом около 100 ГБ. Я использую OSX и в настоящее время использую стандартный инструмент "Compress", который преобразует этот каталог в файл .zip. Есть ли более быстрый способ сделать это?

3 ответа3

15

Для каталогов я бы использовал tar архив с bzip2 с максимальным сжатием.

простой способ пойти,

tar cfj archive.tar.bz2 dir-to-be-archived/ 

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

Я предпочитаю называть такие архивы filename.tar.bz2 и распаковывать с опцией ' xfj '.

Труба с максимальным сжатием выглядит так,

tar cf - dir-to-be-archived/ | bzip2 -9 - > archive.tar.bz2  
#      ^pipe tarball from here to zip-in^ into the archive file. 

Примечание: метод ' bzip2 ' и большее сжатие, как правило, медленнее, чем обычный gzip из ' tar cfz '.

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

tar cf - dir/ | ssh user@server "bzip2 -9 - > /target-path/archive.tar.bz2"  
#      ^ pipe tarball over network to zip ^ and archive on remote machine.

Некоторые ссылки,

  1. Linux Journal: Сравнение инструментов сжатия, 28 июля 2005 г.
    • это также относится к сайту MaximumCompression, упомянутому Dennis
  2. gzip против bzip2, 26 августа 2003 г.
  3. Быстрый тест: Gzip против Bzip2 против LZMA, 31 мая 2005 г.
7

Этот парень провел некоторое исследование по этому вопросу. Похоже, что .zip сжимает большие файлы быстрее. Тем не менее, это дает один из самых больших размеров сжатия. Похоже, он использовал утилиты Windows, но держу пари, что утилита OSX почти так же оптимизирована.

Это отличный веб-сайт, на котором множество утилит сжатия были протестированы на скорость работы со многими файлами. На этом сайте есть много других тестов, которые вы можете посмотреть, чтобы определить лучшую для вас утилиту.

Большая часть скорости связана с программой, которую вы используете. Я использовал утилиту 7zip для Windows, и я считаю, что это очень быстро. Однако сжатие многих файлов занимает много времени, несмотря ни на что, поэтому я просто позволил бы этому работать в одночасье. Или вы можете просто смолить все это, а не сжать его ...Лично я ненавижу разархивировать большие архивы, поэтому я буду осторожен, если это то, что вы хотите сделать.

0

Я предпочитаю использовать

tar cf - dir-to-be-archived/ | bzip2 -9 - > archive.tar.bz2

для перемещения файлов на другой сервер и одновременного их покрытия

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