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.