Zip deflate percentage

3

usando zip archive file eu recebi:

adding: file (deflated 40%)

-rw-rw-r-- 1 lenduya lenduya 757 Jan 18 16:26 archive.zip
-rw-rw-r-- 1 lenduya lenduya 973 Jan 18 16:25 file

A questão é que não tenho certeza de como isso chegou aos 40%. 973/757 é 1,28 e 757/973 é 0,77. 757 / (973-757) é 3,5 e 973 / (973/757) é 4,5.

Bônus: O objetivo é que o argumento de um script seja um arquivo. Eu tenho que imprimir para produzir a taxa de compressão de zip . Meu processo de raciocínio era usar o resumo de zip , enviá-lo para um arquivo e, a partir daí, filtrar as informações desejadas usando cut ou tr . bc lidaria com a formatação de float. Estou em um bom caminho ou há uma maneira muito mais simples?

    
por Hichigaya Hachiman 19.01.2017 / 05:36

1 resposta

2

Primeira pergunta: os 40%. Isso é quanto "espaço" foi removido do arquivo de origem quando foi compactado. O tamanho do arquivo .zip inclui sobrecarga, como valores de CRC, índice de arquivos internos, etc. Quanto menor o arquivo de origem, maior é a proporção relativa de espaço usada para sobrecarga.

Para encontrar o tamanho compactado do arquivo, sem sobrecarga, use unzip e liste o conteúdo

unzip -v archive.zip

Seu exemplo provavelmente usou ~ 173 bytes ou ~ 23% do arquivo para sobrecarga. Fazendo um arquivo aqui de 18K usado sobre o mesmo overhead de 162 bytes ou ~ 0.2% do tamanho do arquivo zip.

A matemática para o seu caso é: tamanho comprimido ~ 584 bytes, espaço salvo 973-584 = 389 bytes, taxa de compressão 584/973 = 60% ou relação de deflação 389/973 = 40%, sobrecarga 757-584 = 173 e 173/757 = 23%.

Seção de bônus: Saída.

Você pode ler essa saída e analisá-la, se desejar. O percentual deflacionado será o mais próximo possível, sem casas decimais. Se você processa um arquivo, isso não é ruim. Se você processa vários em um arquivo, isso pode ser interessante, embora ainda seja possível. É melhor usar o comando unzip acima. Se você executá-lo em seu arquivo, verá que ele lista o tamanho do arquivo e o tamanho compactado duas vezes. A segunda vez é um resumo do arquivo, que é um arquivo neste caso. Se você tiver vários arquivos, o resumo é o total combinado de espaço salvo, como uma porcentagem dos tamanhos de arquivo originais.

Desde que você é um aluno, deixarei o trabalho de análise à sua imaginação como um exercício para aprimorar sua habilidade.

Sorte.

    
por 19.01.2017 / 07:12

Tags