Comprime todo en el directorio actual

84

Me gustaría comprimir y empaquetar todo, incluidos los archivos y carpetas en el directorio actual, en un solo archivo ZIP en Ubuntu.

¿Cuál sería el comando más conveniente para esto (y el nombre de la herramienta que se debe instalar, si corresponde)?

Editar: ¿Qué sucede si necesito excluir una carpeta o varios archivos?

Terry Li
fuente

Respuestas:

103

Instalar zipy usar

zip -r foo.zip .

Puede usar los indicadores -0(ninguno) a -9(mejor) para cambiar la velocidad de compresión

La exclusión de archivos se puede hacer a través de la -xbandera. Desde la página del manual:

-x files
--exclude files
          Explicitly exclude the specified files, as in:

                 zip -r foo foo -x \*.o

          which  will  include the contents of foo in foo.zip while excluding all the files that end in .o.  The backslash avoids the shell filename substitution, so that the name matching
          is performed by zip at all directory levels.

          Also possible:

                 zip -r foo foo [email protected]

          which will include the contents of foo in foo.zip while excluding all the files that match the patterns in the file exclude.lst.

          The long option forms of the above are

                 zip -r foo foo --exclude \*.o

          and

                 zip -r foo foo --exclude @exclude.lst

          Multiple patterns can be specified, as in:

                 zip -r foo foo -x \*.o \*.c

          If there is no space between -x and the pattern, just one value is assumed (no list):

                 zip -r foo foo -x\*.o

          See -i for more on include and exclude.
SkaveRat
fuente
+1 ¿Qué sucede si deseo excluir alguna carpeta o archivo?
Terry Li
1
@TerryLiYifeng Edité mi respuesta con información sobre eso
SkaveRat
18

Supongo que muchas personas que vienen a través de Google a esta pregunta quieren decir "archivar y comprimir" cuando escriben "zip". Una alternativa al formato zip es tar :

tar -czf copy.tar.gz whatever/

donde el archivo comprimido será copy.tar.gz y el contenido será todo lo que esté en la carpeta.

 -c, --create
       create a new archive
 -z, --gzip, --gunzip --ungzip
 -f, --file ARCHIVE
       use archive file or device ARCHIVE
Martin Thoma
fuente
1
Para xz, la opción es--J or --xz
Anwar