Esta es una nueva publicación de mi respuesta a una pregunta similar:
El formato del archivo ZIP incluye un directorio (índice) al final del archivo. Este directorio dice dónde, dentro del archivo, se encuentra cada archivo y, por lo tanto, permite un acceso rápido y aleatorio, sin leer todo el archivo.
Esto parecería plantear un problema al intentar leer un archivo ZIP a través de una tubería, ya que no se accede al índice hasta el final y, por lo tanto, los miembros individuales no se pueden extraer correctamente hasta que el archivo se haya leído por completo y ya no esté disponible . Como tal, no parece sorprendente que la mayoría de los descompresores ZIP simplemente fallen cuando el archivo se suministra a través de una tubería.
El directorio al final del archivo no es la única ubicación donde se almacena la información meta del archivo en el archivo. Además, las entradas individuales también incluyen esta información en un encabezado de archivo local, con fines de redundancia.
Aunque no todos los descompresores ZIP usarán encabezados de archivos locales cuando el índice no esté disponible, los front-end tar y cpio para libarchive (también conocido como bsdtar y bsdcpio) pueden y lo harán al leer a través de una tubería, lo que significa que lo siguiente es posible:
wget -qO- http://example.org/file.zip | bsdtar -xvf-