Gzip descomprimir no arquivo com outra extensão?

7

É possível usar gzip para descompactar um arquivo gzipado, sem a extensão gz, e sem mover o arquivo?

    
por Tyilo 28.02.2012 / 16:24

2 respostas

6

Você pode passar a opção -S para usar um sufixo diferente de .gz .

gunzip -S .compressed file.compressed

Se você quiser que o arquivo não compactado tenha outro nome, execute

gzip -dc <compressed-file >uncompressed-file
gunzip <compressed-file >uncompressed-file

(esses comandos são equivalentes).

Normalmente, descompactar restaura o nome e a data do arquivo original (quando foi compactado); isso não acontece com -c .

Se você quiser que o arquivo compactado e o arquivo descompactado tenham o mesmo nome, não será possível fazer isso diretamente. É necessário renomear o arquivo compactado ou renomear o arquivo descompactado. Em particular, gzip remove e recria seu arquivo de destino, portanto, se você precisar modificar o arquivo porque não tem permissão de gravação no diretório, será necessário usar -c ou redirecionamento.

cp somefile /tmp
gunzip </tmp/somefile >|somefile

Observe que gunzip <somefile >somefile não funcionará, porque o processo gunzip verá um arquivo truncado em 0 bytes quando começar a ler. Se você pudesse invocar o truncamento, então gunzip retornaria sua própria saída; De qualquer forma, este não pode ser feito no lugar.

    
por 28.02.2012 / 20:46
2

Você pode fazer algo como:

gzip -d - < gzippedfilewithnoextention > ungzippedfile

Agora você não pode fazer isso e descompactar o mesmo nome de arquivo. Você precisará renomear o arquivo descompactado depois (ou seja, não é possível colocar no local a descompactação dessa maneira).

    
por 28.02.2012 / 16:39