Não pode compactar um arquivo para 99,99%?

3

Estou usando o antigo ncompress para criar um arquivo de backup. E o que vejo é incrível:

[root@centos6 home]# ll -l -b mytest*
-rw-r--r--. 1 root root 1073741824 Mar  8 13:41 mytest.iso
-rw-r--r--. 1 root root      88099 Mar  9 10:26 mytest.iso.bak.Z

Aqui está o comando que eu usei:

compress -c mytest.iso>mytest.iso.bak.Z

O tamanho de mytest.iso (que na verdade é centos6.8-livecd.iso) foi alterado de 1073741824 (1.0G) para 88099 (87K).

Mas quando eu uso:

tar -cvf mytest.iso.tar.gz mytest.iso

o arquivo tar.gz não muda muito em tamanho:

-rw-r--r--. 1 root root 1073745920 Mar  9 10:43 mytest.tar.gz

Isso é normal? O arquivo iso funciona bem se eu descomprimi-lo.

    
por FrontENG 09.03.2017 / 03:49

1 resposta

3

Os algoritmos de compactação têm taxas de compactação variadas, dependendo das propriedades dos dados que estão sendo compactados. Por exemplo:

$ dd if=/dev/zero of=test.img bs=1m count=1024
$ compress -c test.img > test.img.Z
$ gzip -c test.img > test.img.gz
$ wc -c test.img test.img.gz test.img.Z
 1073741824 test.img
    4685486 test.img.gz
      84781 test.img.Z
 1078512091 total

Ter um arquivo composto principalmente de zeros repetidos é provavelmente a melhor situação para esse algoritmo. Como você está obtendo taxas de compactação semelhantes, e como seu arquivo é de tamanho arredondado (1 GB), é provável que a imagem seja muito maior do que o necessário e apenas preenchida com dados repetidos.

É claro que gzip , compress , bzip2 e outros terão proporções de compactação diferentes em um determinado arquivo. É por isso que muitos grandes projetos de código aberto oferecem vários downloads compactados por diferentes algoritmos - para que os usuários possam baixar o menor arquivo para o qual possuem um utilitário de descompactação.

    
por 09.03.2017 / 04:08