Лучший метод сжатия?

Я хочу сжать папку размером 16 ГБ, но какой метод лучше? tar.gz? tar.bz2 rar? 7z? Будет ли архив меньше, если я сначала сжимаю в методе, затем копирую сжатый архив в новую папку, затем повторно сжимаю другим способом? Мне нужно сделать так, чтобы он помещался на DVD (может быть, 8,5 ГБ, не помню), но если поставить «4370 МБ», сжатый файл будет размером 2,5 ГБ.

Кстати, каков метод сжатия по умолчанию в Ubuntu?

53
задан 19 October 2015 в 12:31

3 ответа

По умолчанию установлено значение gz. Лучшие результаты, которые я получаю с 7z, хотя.

Вот результаты для контейнера виртуальной коробки 1,4 Гб:

enter image description here

Лучший размер сжатия в МБ:

[ 110]

Источник

enter image description here

Установить

 sudo apt-get install p7zip-full
0
ответ дан 19 October 2015 в 12:31

Я выбираю a LZMA. Это имеет самый маленький байт наверху и имеет сильную степень сжатия. Сравнение между ZIP и LZMA: я генерировал два файла seq.txt с кодом PHP

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[$i%10].($i%10==9 ? "\n":""); file_put_contents('seq.txt', $str);

который содержит повторяющиеся блоки 0.. 9 цифр ~ 1 МБ данных и rnd.txt с кодом PHP

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[rand(0,9)].($i%10==9 ? "\n":""); file_put_contents('rnd.txt', $str);

который содержит случайные блоки 0.. 9 цифр ~ 1 МБ данных.

Результаты сжатия:

  • seq.txt, rnd.txt - 1 100 000 байтов
  • seq.txt.zip - 2 502 байта
  • rnd.txt.zip - 515 957 байтов
  • seq.txt.lzma - 257 байтов
  • rnd.txt.lzma - 484 939 байтов

Степень сжатия:

  • ZIP      -> "seq.txt"-> 99,772%
  • ZIP      -> "rnd.txt"-> 53,094%
  • LZMA -> "seq.txt"-> 99,976%
  • LZMA -> "rnd.txt"-> 55,914%

Таким образом, LZMA сжал последовательные данные на 0,2% эффективнее, чем ZIP
и случайные данные на 2,8% эффективнее, чем ZIP.

Наверняка победы LZMA!

2
ответ дан 19 October 2015 в 12:31

Этот вопрос очень старый, но, возможно, кто-то найдет это решение полезным:

Используйте rzip, после tar. Сначала он сжимает блоки данных размером 900 МБ с помощью словарного метода, а затем передает очищенные данные в bzip2. Это намного быстрее, чем другие сильные инструменты сжатия (bzip2, lzma), и некоторые файлы он сжимает даже лучше, чем bzip2 или lzma.

Да, gz является инструментом сжатия по умолчанию в Linux. Это быстро, и, несмотря на его возраст, он дает очень хорошие результаты в сжатии текстовых файлов, таких как исходный код. Другим стандартным инструментом является bzip2, хотя он намного медленнее.

Дополнение: lrzip новее и расширяет принцип rzip. Он даже поддерживает неограниченные размеры блоков и выбор методов сжатия (LZMA, Bzip2, Gzip, LZO, ZPAQ или нет). LZMA является стандартом. Для резервного копирования или если вы делитесь большим количеством данных с другими пользователями Linux / BSD, это может пригодиться.

0
ответ дан 19 October 2015 в 12:31

Другие вопросы по тегам:

Похожие вопросы: