Como faço gunzip para um diretório de destino diferente?

64

Como faço gunzip para um diretório de destino diferente do atual?

Isso não funcionou:

gunzip *.gz /putthemhere/
    
por Scott Szretter 10.05.2010 / 01:15

3 respostas

84

Solicite que gunzip envie para a saída padrão e redirecione para um arquivo nesse diretório:

gunzip -c file.gz > /THERE/file

zcat é um atalho para gunzip -c .

Se você deseja compactar vários arquivos, repita todos os arquivos:

for f in *.gz; do
  STEM=$(basename "${f}" .gz)
  gunzip -c "${f}" > /THERE/"${STEM}"
done

(aqui basename é usado para obter a parte do nome do arquivo sem a extensão)

    
por 10.05.2010 / 01:23
1

Você pode tentar com > para redirecionar o resultado para o lugar que você deseja.

    
por 10.05.2010 / 01:21
1

Se você precisar extrair um único arquivo e escreva em um diretório de propriedade da raiz, use sudo dd :

zcat filename.conf.gz | sudo dd of=/etc/filename.conf >/dev/null

Se o arquivo vier de uma fonte remota (por exemplo, ssh, curl https, etc), você pode fazer assim:

ssh remoteserver cat filename.conf.gz | zcat | sudo dd of=/etc/filename.conf >/dev/null

(Observe que esses exemplos funcionam apenas para um arquivo único , diferentemente do exemplo * .gz, que é todo o arquivo gzipado no diretório.)

    
por 09.01.2017 / 21:24