Tengo un archivo ZIP en el que hay un directorio superior donde se almacenan todos los archivos:
Release/
Release/file
Release/subdirectory/file
Release/subdirectory/file2
Release/subdirectory/file3
Quiero extraer todo debajo Release, preservando la estructura del directorio, pero cuando ejecuto esto:
unzip archive.zip Release/* -d /tmp
Crea la Releasecarpeta superior :
/tmp/Release/
/tmp/Release/file
/tmp/Release/subdirectory/file
/tmp/Release/subdirectory/file2
/tmp/Release/subdirectory/file3
Cómo puedo extraer todo dentro Release sin crear una Releasecarpeta, como esta:
/tmp/
/tmp/file
/tmp/subdirectory/file
/tmp/subdirectory/file2
/tmp/subdirectory/file3
command-line
unzip
Moisés
fuente
fuente

unzip archive.zip && mv Release/* .ReleasecarpetaRespuestas:
En su caso, intente en la carpeta de destino:
De lo que necesita para eliminar el enlace que ha creado:
fuente
La
jbandera debería evitar la creación de carpetasunzip -j archive.zip -d .Desde la página del manual :
fuente
-jopción volca todos los archivos en el directorio actual sin tener en cuenta la estructura del directorio en el archivo.Script de Python para aplanar el árbol extraído
El script escrito a continuación extrae el archivo zip y mueve los archivos contenidos dentro del directorio superior al directorio de trabajo actual. Este script rápido está diseñado para adaptarse a esta pregunta en particular, donde hay un único directorio superior que contiene todos los archivos, aunque con algunas ediciones puede hacerse adecuado para casos más generales.
Prueba de funcionamiento
Aquí hay un ejemplo de cómo se supone que funciona el script. Todo se extrae al directorio de trabajo actual, pero el archivo fuente puede estar en un directorio completamente diferente. La prueba se realiza en el archivo zip de mi repositorio personal de github.
Prueba con el archivo fuente en una ubicación diferente
fuente