Respuestas:
unzip <target-zip-file> '<folder-to-extract/*>' -d <destination-path>
funciona bien en EL 6
"\\"
se usaría (de lo contrario, siempre tendría que recordar qué caracteres son escapes especiales). Por lo tanto, es una diferencia de citas si el autor quiso decir "citar el carácter global" (innecesario). De cualquier manera, una barra invertida como esa es un error tipográfico.
Tratar:
unzip /path/to/archive.zip 'in/archive/folder/*' -d /path/to/unzip/to
caution: filename not matched: foldername/\*
cuando corro unzip $repozip "$2-master/\*" -d /srv/www/magento/
, donde $2
es el nombre de la carpeta en el zip quiero tirar de todos los archivos y carpetas de
"path/*"
.
mv
después para obtener archivos donde los necesitaba.
-j
para eso.
-j
elimina toda la información de ruta y todos los archivos van a la carpeta de destino. ¿Hay alguna manera de eliminar solo la parte común de la ruta? Similar a la cremallera -r
.
Las dos respuestas existentes son correctas, pero es un poco complicado especificar el directorio de destino, eso debería aclararse mejor.
Digamos que /target/root/
es el directorio de destino sobre la acción original de descompresión, por ejemplo:
unzip -qq src.zip -d "/target/root/"
Luego, tenemos que usar lo mismo /target/root/
que el directorio de destino después, aunque queremos extraer solo un subdirectorio específico, como funciona la descompresión:
unzip -qq src.zip "sub/dir/*" "/target/root/"
Después de todo, la regla es realmente simple, use el mismo directorio raíz de destino para la -d
opción .
Por cierto, la -qq
opción es que descomprimir sea realmente silencioso, no dude en eliminarlo.