Я хочу сжать папку размером 16 ГБ, но какой метод лучше? tar.gz? tar.bz2 rar? 7z? Будет ли архив меньше, если я сначала сжимаю в методе, затем копирую сжатый архив в новую папку, затем повторно сжимаю другим способом? Мне нужно сделать так, чтобы он помещался на DVD (может быть, 8,5 ГБ, не помню), но если поставить «4370 МБ», сжатый файл будет размером 2,5 ГБ.
Кстати, каков метод сжатия по умолчанию в Ubuntu?
По умолчанию установлено значение gz
. Лучшие результаты, которые я получаю с 7z
, хотя.
Вот результаты для контейнера виртуальной коробки 1,4 Гб:
Лучший размер сжатия в МБ:
blockquote> [ 110]
Установить
blockquote>sudo apt-get install p7zip-full
Я выбираю 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 МБ данных.
Результаты сжатия:
Степень сжатия:
Таким образом, LZMA сжал последовательные данные на 0,2% эффективнее, чем ZIP
и случайные данные на 2,8% эффективнее, чем ZIP.
Наверняка победы LZMA!
Этот вопрос очень старый, но, возможно, кто-то найдет это решение полезным:
Используйте rzip
, после tar
. Сначала он сжимает блоки данных размером 900 МБ с помощью словарного метода, а затем передает очищенные данные в bzip2
. Это намного быстрее, чем другие сильные инструменты сжатия (bzip2
, lzma
), и некоторые файлы он сжимает даже лучше, чем bzip2
или lzma
.
Да, gz
является инструментом сжатия по умолчанию в Linux. Это быстро, и, несмотря на его возраст, он дает очень хорошие результаты в сжатии текстовых файлов, таких как исходный код. Другим стандартным инструментом является bzip2
, хотя он намного медленнее.
Дополнение: lrzip новее и расширяет принцип rzip. Он даже поддерживает неограниченные размеры блоков и выбор методов сжатия (LZMA, Bzip2, Gzip, LZO, ZPAQ или нет). LZMA является стандартом. Для резервного копирования или если вы делитесь большим количеством данных с другими пользователями Linux / BSD, это может пригодиться.