Crie um arquivo com o comando “gzip”

10

Eu tenho que criar um arquivo com o comando gzip (não tar - é necessário) e o arquivo deve conter arquivos de outro diretório - por exemplo, / etc. Eu tentei usar o comando

gzip myetc.gz /etc

Mas não funcionou.

    
por Elisia Light 23.05.2016 / 13:38

3 respostas

5

O gzip funciona apenas com um único arquivo, ou um fluxo - dados canalizados para o gzip. Então você primeiro precisa gerar um arquivo, como o tar, e então você pode gzipar isso. A outra opção é gzipar todos os arquivos individuais e depois colocar isso em um arquivo.

Ambas as soluções são estúpidas e não devem ser usadas. Você deve usar o tar com a opção de compactação integrada e fazer tudo em um comando.

    
por 23.05.2016 / 15:51
12

gzip funciona com arquivos, não com diretórios. Portanto, para criar um arquivo de um diretório, você precisa usar tar (o que criará um único arquivo tar com vários arquivos):

tar cvf myetc.tar /etc

ou, para um arquivo compactado com compactação:

tar cvzf myetc.tar.gz /etc
    
por 23.05.2016 / 13:47
1

Se você realmente não tem tar disponível, você pode usar o gzip para criar um backup de um diretório usando a opção (-r - recursivamente), mas talvez não seja exatamente o que você está esperando ...

Primeiro, você precisará copiar seu diretório para outro nome, se quiser manter o diretório original intocável.

#cp -a directory my_gzip_alone_backup

Segundo, você comprimirá todos os arquivos no diretório recursivamente (-r).

#gzip -r my_gzip_alone_backup

Agora vamos dar uma olhada no backup do meu-gzip-alone. Você não terá um único arquivo myfile.gz como você está esperando, mas muitos arquivos gziped recursivamente. Mas não é bom fazer isso com o etc por causa dos symlinks ...

Para descompactar o diretório, a mesma lógica pode ser aplicada com o gunzip.

Outra maneira é converter o diretório em um único arquivo, se você não tiver tar para fazer isso, mas tiver o utilitário dd, como demonstrado neste post: link

    
por 23.05.2016 / 15:27

Tags