Comprime el contenido de una carpeta sin incluir la carpeta misma

78

Tengo un directorio llamado folderque se ve así:

folder
      -> root_folder
                    -> some files

Quiero comprimir este directorio zipped_dir, intenté:

zip -r zipped_dir.zip folder/*

Pero esto genera un ZIP que se ve así:

zipped_dir
          -> folder
                   -> root_folder
                                 -> some files

en otras palabras, incluye el directorio cuyo contenido quiero comprimir. ¿Cómo puedo excluir este directorio padre del ZIP sin mover nada?

IE me gustaría este resultado final:

zipped_dir
          -> root_folder
                        -> some files
Jugoso
fuente

Respuestas:

75

Intente usar este comando (obtendrá la idea)

cd folder; zip -r ../zipped_dir.zip *

Tal vez hay otra manera, pero esto es más rápido y más simple para mí :)

Romeo Ninov
fuente
2
esto funciona perfectamente haciendo ese truco. nota: hará a chroot .
loretoparisi
equivalente:zip -r zipped_dir.zip folder/*
Tobias Kolb
55
@TobiasKolb, tal vez no leas la pregunta. OP no quiere tener la carpeta en la ruta almacenada en zip.
Romeo Ninov
2
Parece la única forma de hacerlo
Robert
1
@PabloDiaz, en mi ejemplo cd -hará el trabajo (solo un comando) :) Ocd ..
Romeo Ninov
31

Uso -j; por ejemplo:zip -r -j zipped_dir.zip folder/*

No comprimirá 'root_folder'.

AB
fuente
77
Me sale un error con este si tengo dos archivos con el mismo nombre.
Chris
11
OP probablemente solo quiere eliminar el directorio principal, no todos.
tokland
Todavía crea directorios zip -r -j package.zip ./dist/static/*hace que la estructura de archivodist/static/myfiels
deathangel908
44
también aplana los archivos del directorio secundario.
Sumit Ramteke
3
la -jopción elimina toda la información del directorio y solo guarda archivos. Es decir, almacenar todos los archivos en un directorio de forma "plana".
Robert
5
zip -r -D zipped.zip *

-D indica a zip que no cree directorios.

L. Austin
fuente
0

Esto es lo que funciona para mí:

7z a zipped.zip ./rootDir/*

Creará un ziparchivo con root: cualquier archivo / directorio dentro rootDir.

Marinos An
fuente