with tutorial site para framework español applications linux zip

linux - tutorial - framework django python



Cómo crear un archivo zip sin estructura de directorios completa (4)

Estoy tratando de crear un archivo zip y quiero conservar la mayor parte de la estructura del directorio, pero no el directorio raíz como se define en la línea de comandos. El comando que estoy usando es:

zip -r out.zip /foo/bar/

Me gustaría que se repita a través de la barra y agregue todos los archivos con la estructura de directorio conservada (lo que hace). Sin embargo, no quiero que ''foo'' sea el directorio de nivel superior en el archivo zip creado. Me gustaría que la barra sea el directorio de nivel superior.

¿Hay alguna manera fácil de hacer esto? Me doy cuenta de que podría cambiar los directorios antes de comprimir para evitar el problema, pero estoy buscando una solución que no requiera esto.


Esto debería hacerlo:

cd /foo/bar/ zip -r ../out.zip *

El archivo estará en /foo/out.zip


No creo que zip tenga una forma de excluir el directorio de nivel superior. Creo que lo mejor sería hacer algo como: pushd / foo; zip -r out.zip ./bar; popd

Pero este es exactamente el tipo de respuesta que dijiste que no querías.


Si alguien se encuentra con esto y no está satisfecho con la solución anterior, aquí sigue una solución muy sencilla para no comprimir los subdirectorios largos. Implica crear temporalmente una carpeta en C: / y, después de comprimir, simplemente eliminarla:

ZipFiles <- list.files(".../ZipFiles") # Insert your long subdirectory into .../ dir.create("C:/ZipFiles") dir.create(".../FolderToBeZipped") file.copy(from = ZipFiles,to = "C:/ZipFiles") zip(".../FolderToBeZipped", files = "C:/ZipFiles") unlink("C:/ZipFiles",recursive = TRUE)

El resultado entonces es ... / FolderToBeZipped.zip/ZipFiles/

El beneficio es que no necesita estar dentro del subdirectorio (o proyecto) al ejecutar el código.


7z a -tzip out.zip -w foo/bar/.