extraiga solo el contenido de una carpeta específica de un archivo comprimido a un directorio determinado

extraiga solo el contenido de una carpeta específica de un archivo comprimido a un directorio determinado

Esto está muy cerca del SO.¿Cómo extraer sólo una carpeta específica de un archivo comprimido a un directorio determinado? Necesito algo cercano pero siempre obtengo la carpeta con el contenido, no solo el contenido. Esto es lo que se sugirió:

 #note $2 is passed in and would be == "magefoler"
 unzip /srv/file.zip "$2-master/*" -d /srv/www/mage/

Lo que necesito hacer para tomar un zip que tenga esta estructura.

file.zip
 |-magefoler-master/
 |-magefoler-master/app/*tons of files
 |-magefoler-master/skin/*tons of files

y necesito moverlo a otra carpeta, pero no puedo moverlo magefoler, solo quiero las carpetas appy skin. Esto no significa que siempre serán esas dos carpetas, solo que cualquier contenido secundario, archivo o carpeta, es magefolerlo que necesito eliminar. Lo que se intenta evitar es exportar todo a una carpeta y luego simplemente moverlo desde allí.

El resultado final que estoy buscando proviene del archivo zip que envío a la /magecarpeta como esta:

/srv/www/mage/
     |--/mage/app/*tons of files
     |--/mage/skin/*tons of files

Respuesta1

¿No puedes simplemente descomprimirlo aquí?

$ unzip /srv/file.zip "$2-master/*" -d /srv/www/

Y luego mueva/cambie el nombre de la carpeta magefoler-mastera mage:

$ mv /srv/www/magefoler-master /srv/www/mage

¿Alternativas?

Al investigar este problema exacto en el pasado, solo pude encontrar 2 métodos adicionales para hacer algo como esto sin tener que recurrir al uso del archivo mv.

  1. Usando FUSE como sugiere Gilles aquí:¿Cómo puedo forzar que descomprimir/zip no cree un subdirectorio cuando lo extraigo?
  2. Usar la herramienta zipnotepara mover los archivos dentro del archivo zip, antes de extraerlos.

información relacionada