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á -m
opçã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 ZIPFILE
lista o conteúdo deARQUIVO ZIP, um por linha.for file in `...`; do ??? done
percorre a saída de...
, define a variávelarquivopara uma linha a saída do comando e executa???
.unzip ZIPFILE $file && zip -d ZIPFILE $file
extrai 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 ZIPFILE
remove o arquivo (vazio).unset IFS
restaura 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.