¿Hay una opción en el comando zip de Linux para que pueda codificar el directorio de destino en el que se descomprime? Por ejemplo, me gustaría comprimir archivos ./mydir en myzipfile.zip pero quiero que el comando descomprimir cree un directorio específico "projx" y expanda los archivos que estaban debajo de ./mydir.
zip -r myzipfile.zip mydir (-option to expand into 'projx' when unzipped? )
Respuestas:
No existe tal opción, al menos no para Info-ZIP. Debe crear un proyecto de directorio usted mismo, mover / copiar sus archivos y luego pasarlo
zip
.Si el directorio ya existe, simplemente pase la opción
-d
aunzip
para especificar el directorio de destino para la extracción.fuente
Para hacer eso hay otra manera. Puede aplanar todo el contenido del archivo zip utilizando el siguiente método. El directorio de destino es " projx " y ejecuta el siguiente comando.
La opción -j se llama "rutas basura" y simplemente voltea cada archivo en el directorio actual en lugar de extraer cualquier estructura de directorio.
fuente
No sé acerca de una opción de línea de comando específica, pero puede usar los siguientes comandos para alcanzar su objetivo:
El primer comando crea un enlace simbólico, para que pueda acceder a los archivos
mydir
también a través deprojx
. Luego, usandoInfo-ZIP
(probado con la versión 2.31), el enlace simbólico se desreferencia (esto es el valor predeterminado, a menos que especifique-y
) y los archivos se almacenan de forma recursiva:Verá, el nombre de la carpeta también se almacena en el archivo, por lo que al extraerlo
projx
se crea el directorio .Sin embargo, no puedo pensar en la posibilidad de almacenar rutas absolutas, pero esta es una mala idea de todos modos.
fuente
-jj
. En otros sistemas operativos, solo-j
se admite la opción (y-jj
se interpreta como-j
) que elimina cualquier ruta principal y, por lo tanto, conduce a lo opuesto (un diseño muy inteligente ...).