Não é o caso desta vez (veja a resposta aceita ), mas às vezes a sobrecarga extra de arquivamento e compactação pode resultar em um arquivo maior que o conteúdo original.
Isso é verdadeiro quando há entropia extremamente alta, como um diretório preenchido com arquivos de texto e / ou mídia aleatórios.
Exemplo 1: Dados aleatórios
$ 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
Isso criou um arquivo aleatório de 100M e, em seguida, arquivou e compactou-o de várias maneiras diferentes. Os resultados são classificados por tamanho (maior primeiro). Como você pode ver, a sobrecarga dos contêineres de compactação e cabeçalhos de compactação é grande e há uma falta de padrões distintos para compactar.
O arquivo aleatório original é, sem surpresa, o menor aqui.
(usei -ck
e canalizei a saída dos comandos de compactação para que você possa ver com mais clareza qual arquivo de saída foi criado. Isso foi supérfluo).
Exemplo 2: dados de vídeo + áudio
$ 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
Eu repeti os testes gzip e xz para este vídeo de teste. Havia metadados suficientes para apenas reduzi-lo com a compactação ( xz pode economizar 68k, um gritante 0,1%!). Eu suspeito que isso tem a ver com as dicas .mp4 folhas para garantir streaming adequado e sincronização de áudio-visual. Este vídeo em particular não tem legendas.
Em resumo, não comprima dados aleatórios ou compactados.