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 Release
carpeta 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 Release
carpeta, 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/* .
Release
carpetaRespuestas:
En su caso, intente en la carpeta de destino:
De lo que necesita para eliminar el enlace que ha creado:
fuente
La
j
bandera debería evitar la creación de carpetasunzip -j archive.zip -d .
Desde la página del manual :
fuente
-j
opció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