Descompacte o arquivo zip grande sobre si

2

Eu quero descompactar o arquivo de 20Gb, mas não tenho outros 20-30Gb de espaço livre no disco rígido. É possível descompactar este arquivo sobre si mesmo?

Para que o arquivo zip seja excluído após a descompactação e eu terei descompactado o conteúdo.

    
por Igor Konoplyanko 26.02.2013 / 18:40

2 respostas

4

Não há -m (move) para descompactar como há para zip, mas você pode extrair os arquivos do arquivo um por um e excluí-los imediatamente depois de extraí-los.

Eu não sei muito sobre o OS X, mas isso funciona com o Bash no Ubuntu:

IFS=$'\n'

for file in 'zipinfo -Z1 ZIPFILE'; do
    unzip ZIPFILE $file && zip -d ZIPFILE $file
done

rm ZIPFILE

unset IFS
  • IFS=$'\n' define o separador de campo interno como nova linha, para que nomes de arquivos que contenham espaços sejam manipulados corretamente.

  • zipinfo -Z1 ZIPFILE lista o conteúdo de ZIPFILE , um por linha.

  • for file in '...'; do ??? done faz um loop pela saída de ... , configura a variável arquivo para uma linha da saída do comando e executa ??? .

  • unzip ZIPFILE $file && zip -d ZIPFILE $file extrai o arquivo especificado em arquivo do arquivo zip e o exclui do arquivo ( zip -d ).

    Aqui, && garante que o segundo comando seja executado somente se o primeiro for finalizado com êxito.

  • rm ZIPFILE remove o arquivo (vazio).

  • unset IFS restaura o valor padrão do separador de arquivos interno.

por 26.02.2013 / 20:42
0

Eu acredito que não seja possível. No seu caso, você precisará de uma mídia de armazenamento extra para enviar o conteúdo extraído; ou mova o zip para ele e extraia-o para o disco rígido.

    
por 26.02.2013 / 18:58