Сжатый (по размеру gzip) размер намного больше, чем исходная папка

Я взял резервную копию папки /var/www с помощью команды tar (включая -z (gzip)):

tar -cvzf file.gz /var/www/*

Я проверил размер www. Это около 100 кб, но размер файла, созданного tar, составляет около 185 МБ. Что может быть причиной этого?

1
задан 7 October 2016 в 17:56

2 ответа

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

drwxr-xr-x 8 www-data www-data 4096 Sep  2 03:12 some-dir

показывает вам, что сам каталог занимает 4096 байт. Но это только размер записи some-dir s в структуре вашей файловой системы. Чтобы суммировать размеры содержимого каталога, вы можете использовать du («использование диска»), например

du -s some-dir

Как и в случае с ls и рядом других команд, вы можете использовать переключатель h для «удобочитаемых» единиц:

du -s some-dir
1804    some-dir

du -sh some-dir
1,8M    some-dir
4
ответ дан 23 May 2018 в 05:25

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

Это верно, когда есть чрезвычайно (! d2)

Пример 1: Случайные данные

$ dd if=/dev/urandom of=test bs=1M count=100 $ tar -zcf test.tgz test $ tar -cf test.tar test $ gzip -ck --best test.tar > test-best.tar.gz $ gzip -ck --fast test.tar > test-fast.tar.gz $ xz -ck --fast test.tar >test.tar.xz $ xz --fast -ck test >test.xz $ gzip --best -ck test >test.gz $ bzip2 --best -ck test >test.bz2 $ ls -lS test* -rw-r--r-- 1 adkatz adkatz 105326395 Oct 7 16:52 test.bz2 -rw-r--r-- 1 adkatz adkatz 104875661 Oct 7 16:49 test-fast.tar.gz -rw-r--r-- 1 adkatz adkatz 104875661 Oct 7 16:48 test.tar.gz -rw-r--r-- 1 adkatz adkatz 104874474 Oct 7 16:49 test-best.tar.gz -rw-r--r-- 1 adkatz adkatz 104874206 Oct 7 16:51 test.gz -rw-r--r-- 1 adkatz adkatz 104867840 Oct 7 16:48 test.tar -rw-r--r-- 1 adkatz adkatz 104864052 Oct 7 16:50 test.tar.xz -rw-r--r-- 1 adkatz adkatz 104862868 Oct 7 16:50 test.xz -rw-r--r-- 1 adkatz adkatz 104857600 Oct 7 16:47 test

Это создало случайный файл 100M, а затем архивировался и сжал его несколькими способами. Результаты сортируются по размеру (сначала самые большие). Как вы можете видеть, накладные расходы из контейнеров tarball и заголовков сжатия велики, и существует значительное отсутствие шаблонов для сжатия.

Исходный случайный файл неудивительно наименьший здесь.

(Я использовал -ck и передал выходные данные команд сжатия, чтобы вы могли более четко видеть, какой выходной файл он создал. Это было излишним.)

Пример 2: Видео + Аудиоданные

[ f2]

Я повторил тесты gzip и xz для этого тестового видео. Было достаточно метаданных, чтобы просто сжать сжатие ( принятый ответ может спасти 68k, колоссальные 0,1%!). Я подозреваю, что это связано с репликами .mp4, чтобы обеспечить правильную поточную и аудиовизуальную синхронизацию. В этом конкретном видео отсутствует субтитры.

 

Короче говоря, не сжимайте случайные или сжатые данные.

1
ответ дан 23 May 2018 в 05:25

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

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