Я взял резервное копирование папки /var/www
с tar
команда (включая -z
(gzip)):
tar -cvzf file.gz /var/www/*
Я проверил размер www
. Это - приблизительно 100 КБ, но размер файла, произведенного tar
приблизительно 185 МБ. Что могло вызвать это?
ls -sh
не принимает подкаталоги во внимание.
я использовал бы du -csh -- *
для вычисления, это (эти --
предотвращает проблемы с файлами, запускающимися с "тире"). Где...
-s, --summarize
display only a total for each argument
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
-c, --total
produce a grand total
, Если у Вас есть hardlinks, хотя он испортит общие количества.
Вы, вероятно, ошибаетесь о том, насколько большой содержание Вашего исходного каталога. В случае каталогов ls -l
списки размер самого каталога, не из файлов содержится в том каталоге. Так, например
drwxr-xr-x 8 www-data www-data 4096 Sep 2 03:12 some-dir
шоу Вы, что сам каталог берет 4 096 байтов. Но это - только размер some-dir
запись с в Вашей структуре файловой системы. Для подведения размеров содержания каталога можно использовать du
("использование диска"), например
du -s some-dir
Как с ls
и набор других команд, можно использовать переключатель h
для "человекочитаемых" единиц:
du -s some-dir
1804 some-dir
du -sh some-dir
1,8M some-dir
Это не имеет место на этот раз (см. принятый ответ), но иногда дополнительные издержки архивации и сжатия могут привести к более крупному архиву, чем исходное содержание.
Это верно, когда существует чрезвычайно высокая энтропия, такая как каталог, заполненный файлами случайного текста и/или медиа.
$ 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
и переданный по каналу вывод сжатия управляет, таким образом, можно более ясно видеть, какой выходной файл это создало. Это было лишним.)
$ youtube-dl -o test.mp4 'https://www.youtube.com/watch?v=dQw4w9WgXcQ' [youtube] dQw4w9WgXcQ: Downloading webpage [youtube] dQw4w9WgXcQ: Downloading video info webpage [youtube] dQw4w9WgXcQ: Extracting video information [youtube] dQw4w9WgXcQ: Downloading js player en_US-vflOj6Vz8 [download] Destination: test.mp4 [download] 100% of 56.64MiB in 00:07 $ gzip --best -ck test.mp4 >test.mp4.gz $ xz --fast -ck test.mp4 >test.mp4.xz $ ls -lS test.mp4* -rw-r--r-- 1 adkatz adkatz 59388616 Oct 7 16:52 test.mp4 -rw-r--r-- 1 adkatz adkatz 59332683 Oct 7 16:52 test.mp4.gz -rw-r--r-- 1 adkatz adkatz 59320572 Oct 7 16:52 test.mp4.xz
Я повторил gzip и тесты xz для этого тестового видео. Было достаточно метаданных, чтобы едва-едва уменьшиться, это со сжатием (xz может сохранить 68k, огромные 0,1%!). Я подозреваю, что это имеет отношение к сигналам .mp4, уезжает для обеспечения надлежащей потоковой передачи и аудиовизуальной синхронизации. Это конкретное видео испытывает недостаток в подзаголовках.
Короче говоря, не сжимайте случайные или сжатые данные.