Descompacte o arquivo zip grande sobre si mesmo

Descompacte o arquivo zip grande sobre si mesmo

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

Portanto, esse arquivo zip será excluído após a descompactação e terei o conteúdo descompactado.

Responder1

Não há -mopção (mover) para descompactar como existe para zip, mas você pode extrair os arquivos do arquivo um por um e excluí-los imediatamente após extraí-los.

Não sei muito sobre o OS X, mas 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 tratados corretamente.

  • zipinfo -Z1 ZIPFILElista o conteúdo deARQUIVO ZIP, um por linha.

  • for file in `...`; do ??? donepercorre a saída de ..., define a variávelarquivopara uma linha a saída do comando e executa ???.

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

    Aqui, &&garante que o segundo comando seja executado somente se o primeiro for encerrado com sucesso.

  • rm ZIPFILEremove o arquivo (vazio).

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

Responder2

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.

informação relacionada