Como aumentar com segurança um arquivo gzipado?

0

Eu tenho um arquivo gzipado (cerca de 3Kb) e quero que seu tamanho seja exatamente 4000.

Para atingir esse objetivo, é seguro adicionar zeros à direita? (Por segurança, quero dizer que o conteúdo do arquivo gzip pode ser gunzipped sem erros.)

dd if=/dev/zero of=/myfile bs=1 count=4000
dd if=/gzipfile.gz of=/myfile

Se isso não é seguro, existem alternativas?

    
por michelemarcon 22.02.2013 / 15:10

1 resposta

3

Da página do manual:

CAVEATS

 When writing compressed data to a tape, it is generally
 necessary to pad the output with zeroes up to a block
 boundary. When the data is read and the whole block is
 passed to gun‐ zip for decompression, gunzip detects that
 there is extra trailing garbage after the compressed data
 and emits a warning by default. You have to use the
 --quiet option to suppress the warning.

Então, parece que você está seguro.

Note que o seu código não funciona, já que você precisa passar conv=notrunc na segunda invocação de dd .

Como alternativa, você pode fazer:

dd bs=4000 seek=1 count=0 of=file.gz

ou

truncate  -s 4000 file.gz

Para torná-lo 4000 bytes grandes (sem realmente escrever zeros, apenas torne-o escasso).

    
por 22.02.2013 / 16:39