Unzipping resulta em um arquivo, não em uma pasta

0

Eu fechei 6 arquivos (tamanho total = 2gb) usando gzip -c myfiles_* > ~/myzip.gzip no servidor A e consegui que meu amigo copiasse esse servidor para o servidor B. Agora eu aprendi que o arquivo deveria ser chamado .gz , então eu renomeou o arquivo usando mv . Verifiquei se o arquivo no servidor B tinha o mesmo tamanho que o arquivo .gzip original no servidor A, o que aconteceu. Então eu corri gunzip myzip.gz .

O resultado não é uma pasta contendo meus arquivos, mas um único arquivo chamado myfiles sem nenhuma extensão. O tamanho do arquivo é do mesmo tamanho que os arquivos iniciais, então todos os arquivos foram compilados neste único arquivo. Como eu agora extraio os arquivos novamente deste arquivo único?

Como você pode dizer, eu ainda sou muito novo no Linux.

    
por pir 22.10.2015 / 16:12

1 resposta

1

I zipped 6 files (total size = 2gb) using gzip -c myfiles_* > ~/myzip.gzip and got my friend to copy this server to another server. Now I've learned that the archive is supposed to be named .gz so I renamed the file using mv. Then I ran gunzip myzip.gz.

Os resultados que você está vendo são exatamente o que você criou. O GZip não retém nenhuma estrutura de diretórios quando é comprimido; apenas comprime arquivos / dados. Então, quando você executou este comando:

gzip -c myfiles_* > ~/myzip.gzip

Tudo o que o GZip fez foi concatenar todos os arquivos que encontrou com myfiles_* em um grande blob e comprimi-los em ~/myzip.gzip . O fato de a extensão do arquivo estar incorreta é irrelevante, já que renomear esse arquivo - como aconteceu com você - resolveria o problema, mas o arquivo subjacente ainda é apenas um grande bloco de arquivos.

Quanto a como recuperar isso agora? Muito confiante que você não pode porque o problema estava em sua lógica inicial do GZip. A única recomendação que eu teria para você agora é começar de volta ao quadrado um e criar um arquivo TAR / GZipped como este.

Criando o arquivo TAR / GZipped.

Primeiro, execute este comando TAR:

tar -cf myzip.tar myfiles_*

Isso criaria um novo arquivo TAR chamado myzip.tar que consiste nos arquivos encontrados pelo sistema usando o padrão, myfiles_* .

Agora, com isso feito, você pode GZip arquivo TAR como este:

gzip myzip.tar

Este é o meu processo de lidar com essas coisas no Mac OS X, mas se você estiver usando uma versão GNU do TAR - que a maioria dos sistemas Linux usa - você pode executar este comando para combinar as duas etapas:

tar -cfz myzip.tar.gz

Observe que z extra nas opções? Isso diz ao TAR para GZip o arquivo ao criá-lo.

Descompactando e desarquivando o arquivo TAR / GZipped.

Uma vez feito isso, você terá um novo arquivo chamado myzip.tar.gz . Transfira qualquer lugar que você precisar e então descompacte-o usando o comando TAR assim:

tar -xf myzip.tar.gz

O TAR é bastante inteligente hoje em dia para detectar compressão GZip como parte de seu processo de desarquivamento, então ele irá descompactar o arquivo TAR e então extrair o conteúdo daquele arquivo de volta TAR para combinar exatamente com o arquivo e estrutura de diretórios de qualquer fonte era para começar.

    
por 22.10.2015 / 16:23

Tags