Como comprimir una carpeta entera en linux desde consola

Es muy fácil y útil comprimir archivos y sobre todo carpetas enteras desde consola. Es útil a la hora de realizar backups o copias de seguridad de directorios, ya que permite comprimir un directorio entero y descargarlo de forma más segura y más cómoda.

El comando te tienes que ejecutar desde la consola es el siguiente:

tar -zcvf nombre-archivo.tar.gz nombre-directorio

Donde,

  • -z: Comprimir archivos usando gzip
  • -c: Crear un nuevo archivo
  • -v: Verbose, es decir, mostrar el proceso durante la creacion del archivo
  • -f: nombre de archivo

Ahora bien, Como Descomprimir un archivo .tar.gz.

El comando necesario para descomprimir sería el mismo pero cambiando algunos atributos.

tar -xvzf miarcho.tar.gz

Donde,

  • -x: extrae el contenido del archivo comprimido
  • -v: Verbose, es decir, mostrar el proceso durante la creacion del archivo
  • -f: nombre de archivo

Otros formatos y comandos para comprimir y descomprimir mas usados

Ficheros gz
Comprimir

gzip -9 fichero

Descomprimir

 gzip -d fichero.gz

Ficheros bz2
Comprimir

 bzip fichero

Descomprimir

 bzip2 -d fichero.bz2

Tanto gzip como bzip2 solo comprimen ficheros. No son capaces de empaquetar carpetas, para esto se utiliza el comando tar que he indicado anteriormente.

Ficheros zip

Comprimir

 zip archivo.zip ficheros

Descomprimir

 unzip archivo.zip

Ficheros rar

Comprimir

 rar -a archivo.rar ficheros

Descomprimir

 rar -x archivo.rar

Tags de búsquedas:

comprimir carpeta linux,comprimir carpeta en linux,comprimir una carpeta en linux,linux comprimir carpeta,comprimir directorio linux,comprimir carpetas linux,comprimir carpeta tar gz,comprimir carpetas en linux,comprimir carpeta tar,comprimir una carpeta linux,linux comprimir directorio,como comprimir una carpeta en linux,comprimir una carpeta con tar,tar comprimir carpeta,comprimir un directorio en linux

Noticias relacionadas »

16 comentarios en Como comprimir una carpeta entera en linux desde consola

  1. Adrian
    / Responder

    Muy buen Post. Excelente aporte.
    Gracias!!

  2. Pingback: Sistemas » Comprimir archivos y directorios en Linux

  3. Diego
    / Responder

    Muy buen post. Muy útil para usuarios linux sin modo grafico.

  4. Javier
    / Responder

    Encontré la solución poniéndome a leer un poco. Debo agregar -r . Perdón la ignorancia. jaja. Saludos

  5. Javier
    / Responder

    Gracias por el post. Muy práctico.
    Pero tengo una consulta que debe ser muy fácil de resolver, lo que pasa que no soy operador de este SO y realmente no sé operar.
    Tengo que comprimir un árbol de carpetas con archivos en un .zip. Mi problema es que cuando comprimo, sólo me comprime el primer directorio que únicamente contiene otros directorios. Por ende, no me comprime nada. No sé si logro explicarme bien. Por ejemplo sería algo así: folder1/folder2/file1 y cuando comprimo sólo me comprime folder1 vacía.
    El comando que uso es zip fileZip.zip folder1/
    Muchas gracias.

  6. hectorelgomez
    / Responder

    Dejo también un par de ejemplos de uso:

    Extraer con tar: tar xvf fichero.tar

    Para extraer con rar:
    instalar primero->sudo aptitude install rar
    rar X fichero.rar

  7. Juan
    / Responder

    Tengo una duda?
    Si estiy haciendo el backup de un directorio de algunos cientos de gigas, cual es el tama;o maximo que puedo comprimir?
    Debo comprimir por agrupacion de carpetas?

    Pedro gracias por la guia, esta excelente.

    • Pedro Ventura
      / Responder

      Hola juan,

      No hay un tamaño máximo. Pero te voy a aclarar, la compresión se utiliza para optimizar y reducir espacio. Si lo que tu estas comprimiendo son archivos de log o cualquier tipo de texto la compresión la compresión será un método óptimo y efectivo para ahorrar espacio.
      Si en cambio quieres comprimir un directorio con los cientos de GB que me comentas que no son texto, el ratio de compresión será muy poco y ocupará casi el mismo espacio. Si lo que quieres hacer es agrupar todo el directivo y su árbol de directorios internos en un mismo archivo tendrás que usar un el comando tar que es para empaquetar archivos, que es diferente a comprimir.

      Espero que te haya ayudado

      Un saludo!!

  8. hectorelgomez
    / Responder

    Genial, muchas gracias, sólo te faltaría el man de los comandos, pero aún así es muy práctico.

    Usage: gzip [OPTION]… [FILE]…
    Compress or uncompress FILEs (by default, compress FILES in-place).

    Mandatory arguments to long options are mandatory for short options too.

    -c, –stdout write on standard output, keep original files unchanged
    -d, –decompress decompress
    -f, –force force overwrite of output file and compress links
    -h, –help give this help
    -l, –list list compressed file contents
    -L, –license display software license
    -n, –no-name do not save or restore the original name and time stamp
    -N, –name save or restore the original name and time stamp
    -q, –quiet suppress all warnings
    -r, –recursive operate recursively on directories
    -S, –suffix=SUF use suffix SUF on compressed files
    -t, –test test compressed file integrity
    -v, –verbose verbose mode
    -V, –version display version number
    -1, –fast compress faster
    -9, –best compress better
    –rsyncable Make rsync-friendly archive

    With no FILE, or when FILE is -, read standard input.

    Report bugs to .

    ———————————————————-

    Uso: tar [OPCIÓN…] [ARCHIVO]…
    GNU «tar» guarda muchos archivos juntos en un único archivo de cinta o
    disco, y puede recuperar archivos individuales desde el archivador.

    Ejemplos:
    tar -cf archivo.tar foo bar # Crea el archivo archivo.tar con los archivos
    foo y bar.
    tar -tvf archivo.tar # Lista todos los archivos en archivo.tar
    detalladamente.
    tar -xf archivo.tar # Extrae todos los archivos contenidos en
    archivo.tar.

    Modo principal de operación

    -A, –catenate, –concatenate añade ficheros tar a un archivo
    -c, –create crea un nuevo archivo
    -d, –diff, –compare encuentra las diferencias entre un archivo y el
    sistema de ficheros
    –delete elimina del archivo (¡no en cintas magnéticas!)
    -r, –append añade ficheros al final del archivo
    -t, –list muestra el contenido de un archivo
    –test-label comprobar la etiqueta de volumen de archivo y
    salir
    -u, –update solamente añade ficheros más recientes que la
    copia del archivo
    -x, –extract, –get extrae ficheros de un archivo

    Modificadores de la operación

    –check-device comprueba los números de dispositivo cuando se
    crean archivadores incrementales (predeterminado)
    -g, –listed-incremental=ARCHIVO
    maneja el nuevo formato GNU de respaldo
    incremental
    -G, –incremental maneja el formato GNU antiguo de respaldo
    incremental
    –ignore-failed-read no sale con valor distinto de cero o con archivos
    no legibles
    –level=NÚMERO nivel de volcado para el archivador de lista
    incremental creado
    -n, –seek se puede buscar en el archivador
    –no-check-device no comprueba los números de dispositivo cuando se
    crean archivadores incrementales
    –no-seek el archivador no permite la búsqueda
    –occurrence[=NÚMERO] procesa sólo la NÚMERO-ésima aparición de cada
    archivo en el archivador; esta opción sólo es
    válida junto a una de las sub-órdenes –delete,
    –diff, –extract o –list y cuando se da una
    lista de archivos (en la línea de órdenes o a
    través de la opción -T); el valor predeterminado
    es 1
    –sparse-version=MAYOR[.MENOR]
    establece la versión del formato sparse para usar
    (implica –sparse)
    -S, –sparse maneja ficheros dispersos de forma eficiente

    Control de sobreescritura:

    -k, –keep-old-files no reemplaza ficheros que existan al extraer
    –keep-newer-files no reemplaza los ficheros que existan que sean
    más recientes que sus copias en el archivo
    –no-overwrite-dir conserva los metadatos de los directorios que
    existan
    –overwrite sobreescribe los ficheros que existan al extraer
    –overwrite-dir reemplazar metadatos de directorios existentes al
    extraer (predeterminado)
    –recursive-unlink vacía jerarquías antes de extraer directorios
    –remove-files borra los ficheros después de añadirlos al
    archivo
    -U, –unlink-first borra cada fichero antes de extraer sobre él
    -W, –verify intenta verificar el archivo después de
    escribirlo

    Seleccione el flujo de salida:

    –ignore-command-error ignorar códigos de salida de hijos
    –no-ignore-command-error tratar los códigos de salida no cero de los
    hijos como error
    -O, –to-stdout extrae los ficheros a la salida estándar
    –to-command=ORDEN entuba los archivos extraídos a otro programa

    Manejo de los atributos del archivo

    –atime-preserve[=MÉTODO] conserva las fechas de acceso en los
    archivos volcados, bien restaurando las fechas
    después de leer (MÉTODO=«replace»;
    predeterminado), o no estableciendo las fechas al
    principio (MÉTODO=«system»)
    –delay-directory-restore retrasar la configuración de los tiempos de
    modificación y de los permisos de los directorios
    descomprimidos hasta que termine la
    descompresión
    –group=NOMBRE fuerza NOMBRE como grupo para los ficheros que se
    añaden
    –mode=CAMBIOS fuerza CAMBIOS (simbólicos) de modo para los
    ficheros que se añaden
    –mtime=FECHA-O-FICHERO establecer mtime para archivos añadidos desde
    DATE-OR-FILE
    -m, –touch no extraer fecha de modificación del archivo
    –no-delay-directory-restore
    cancelar el efecto de la opción
    –delay-directory-restore
    –no-same-owner extraer archivos como Ud. mismo (por defecto para
    usuarios normales)
    –no-same-permissions aplicar la máscara de usuario cuando se extraigan
    permisos desde el archivo (por defecto para
    usuarios normales)
    –numeric-owner utiliza siempre números para los nombres de
    usuarios/grupos
    –owner=NOMBRE forzar NOMBRE como propietario para archivos
    añadidos
    -p, –preserve-permissions, –same-permissions
    extraer información sobre permisos de archivo
    (predeterminado para superusuarios)
    –preserve igual que usar a la vez -p y -s
    –same-owner intentar extraer los archivos manteniendo el mismo
    usuario existente en el archivo (el predeterminado
    es el superusuario)
    -s, –preserve-order, –same-order
    ordena los nombres a extraer para coincidir con el
    archivo

    Selección de dispositivo y opciones:

    -f, –file=ARCHIVO utiliza un archivo o el dispositivo ARCHIVO
    –force-local el archivador de archivos es local incluso si
    tiene una coma
    -F, –info-script=NOMBRE, –new-volume-script=NOMBRE
    ejecutar script al final de cada cinta (implica
    -M)
    -L, –tape-length=NÚMERO cambia la cinta después de escribir NÚMERO x
    1024 bytes
    -M, –multi-volume crear/listar/extraer archivos multivolumen
    –rmt-command=ORDEN utiliza la ORDEN rmt dada en vez de rmt
    –rsh-command=ORDEN utiliza la ORDEN remota en vez de rsh
    –volno-file=ARCHIVO use/actualice el número de volumen en ARCHIVO

    Bloques en los dispositivos:

    -b, –blocking-factor=BLOQUES BLOQUES x 512 bytes por registro
    -B, –read-full-records rehace los bloques conforme se lee (para tuberías
    de 4.2BSD)
    -i, –ignore-zeros ignorar bloques de tamaño cero en el archivo
    (significa fin de fichero (EOF))
    –record-size=NÚMERO NÚMERO de bytes por registro, múltiplo de 512

    Archivo desde la entrada estándar

    -H, –format=FORMATO crear archivo del formato dado

    FORMATO es uno de los siguientes:

    gnu Formato GNU tar 1.13.x
    oldgnu formato GNU de tar <= 1.12
    pax formato POSIX 1003.1-2001 (pax)
    posix lo mismo que pax
    ustar Formato POSIX 1003.1-1988 (ustar)
    v7 antiguo formato tar V7

    –old-archive, –portability
    lo mismo que –format=v7
    –pax-option=clave[[:]=valor][,clave[[:]=valor]]…
    palabras clave de control de pax
    –posix lo mismo que –format=posix
    -V, –label=TEXTO crear un archivador con nombre de volumen TEXTO; a
    la hora de listar o extraer, utiliza TEXTO como un
    patrón de expansión para el nombre de volumen

    Opciones de compresión:

    -a, –auto-compress usar el sufijo de archivo para determinar el
    programa de compresión
    -I, –use-compress-program=PROG
    filtrar mediante PROG (debe aceptar -d)
    -j, –bzip2 filtrar el archivador a través de bzip2
    -J, –xz filtrar el archivador a través de xz
    –lzip filtrar el archivador a través de lzip
    –lzma filtrar el archivador a través de xz
    –lzop
    –no-auto-compress no usar sufijo del archivo para determinar el
    programa de compresión
    -z, –gzip, –gunzip, –ungzip filtrar el archivador a través de gzip
    -Z, –compress, –uncompress filtrar el archivador a través de compress

    Slección de archivo local:

    –add-file=ARCHIVO añade un ARCHIVO dado al archivo (útil si su
    nombre comienza con un guión)
    –backup[=CONTROL] se hace un respaldo antes de borrar, escoja el
    CONTROL de versión
    -C, –directory=DIR cambiar al directorio DIR
    –exclude=PATRÓN excluye ficheros, dados como un PATRÓN
    –exclude-backups excluir respaldos y archivos bloqueados
    –exclude-caches excluir el contenido de los directorios que
    contengan CACHEDIR.TAG, excepto el propio archivo
    tag
    –exclude-caches-all excluir directorios que contengan CACHEDIR.TAG
    –exclude-caches-under excluir todo bajo los directorios que contengan
    CACHEDIR.TAG
    –exclude-tag=ARCHIVO excluir el contenido de los directorios que
    contengan ARCHIVO, excepto el propio ARCHIVO
    –exclude-tag-all=ARCHIVO excluir los directorios que contengan ARCHIVO

    –exclude-tag-under=ARCHIVO
    excluir todo bajo los directorios que contengan
    ARCHIVO
    –exclude-vcs excluir directorios de sistemas de control de
    versiones
    -h, –dereference seguir los enlaces simbólicos; archivar y volcar
    los archivos a los que apuntan
    –hard-dereference seguir enlaces duros; archivar y volcar los
    archivos a los que se refieran
    -K, –starting-file=NOMBRE-DE-MIEMBRO
    comienza por el miembro NOMBRE-DE-MIEMBRO dentro
    del archivo
    –newer-mtime=FECHA comparar fecha y hora sólo cuando los datos hayan
    cambiado
    –no-null desactivar el efecto del anterior opción –null
    –no-recursion evita descender automáticamente en directorios
    –no-unquote no quitar cita de nombres de archivos leídos con
    -T
    –null -T lee nombres terminados en nulo
    (null-terminated), desactiva -c
    -N, –newer=FECHA-O-FICHERO, –after-date=FECHA-O-FICHERO
    almacena solamente ficheros más recientes que
    FECHA-O-FICHERO
    –one-file-system mantenerse en el sistema de archivos local al
    crear archivo
    -P, –absolute-names no elimina la «/» inicial de los nombres de
    archivos
    –recursion opera recursivamente sobre los directorios (por
    omisión)
    –suffix=CADENA hacer copia de respaldo antes de eliminar,
    sobrescribiendo el sufijo típico ('~' a menos que
    esté sobrescrito por la variable de entorno
    SIMPLE_BACKUP_SUFFIX)
    -T, –files-from=ARCHIVO lee los nombres a extraer o crear desde ARCHIVO
    –unquote quitar cita de nombres de archivos leídos con -T
    (predeterminado)
    -X, –exclude-from=ARCHIVO excluye los patrones listados en FICHERO

    Transformaciones de nombre de archivo:

    –strip-components=NÚMERO quitar NÚMERO componentes destacados de los
    nombres de archivo en la extracción
    –transform=EXPRESIÓN, –xform=EXPRESIÓN
    use sustitución sed EXPRESIÓN para transformar
    nombres de archivo

    Opciones de concordancia de nombres de archivos (afecta a patrones de
    inclusión/exclusión):

    –anchored patrones que concuerdan con el inicio del nombre
    de archivo
    –ignore-case ignorar capitalización
    –no-anchored patrones que concuerdan después de «/»
    (predeterminado para exclusión)
    –no-ignore-case comparación sensible a mayúsculas
    (predeterminado)
    –no-wildcards coincidencia exacta de cadenas de caracteres
    –no-wildcards-match-slash los comodines no concuerdan con «/»
    –wildcards usar comodines (por defecto para exclusión)
    –wildcards-match-slash los comodines concuerdan con «/»
    (predeterminado para exclusión)

    Salida informativa:

    –checkpoint[=NÚMERO] mostrar mensajes de progreso cada NUMERO registros
    (predeterminado a 10)
    –checkpoint-action=ACCIÓN
    ejecuta ACCIÓN en cada punto de control
    –full-time imprimir la hora del archivo a su resolución
    completa
    –index-file=ARCHIVO enviar salida verbosa a ARCHIVO
    -l, –check-links muestra un mensaje si no se vuelcan todos los
    enlaces
    –no-quote-chars=CADENA desactivar citación para caracteres desde
    STRING
    –quote-chars=CADENA caracteres de cita adicionales desde STRING
    –quoting-style=ESTILO establece el estilo de citado; más abajo
    encontrará los ESTILOS válidos
    -R, –block-number mostrar número de bloque dentro del archivo en
    cada mensaje
    –show-defaults muestra los valores predeterminados de tar
    –show-omitted-dirs al listar o extraer, lista cada directorio que no
    coincide con el criterio de búsqueda
    –show-transformed-names, –show-stored-names
    muestra el archivo o nombres de archivo después
    de la transformación
    –totals[=SEÑAL] muestra el número total de bytes tras procesar el
    archivo; con el argumento – imprime el número
    total de bytes cuando se envía una SEÑAL. Esta
    puede ser SIGHUP, SIGQUIT, SIGINT, SIGUSR1 y
    SIGUSR. También se aceptan los nombres sin el
    prefijo SIG.
    –utc imprimir la hora de modificación del archivo en
    UTC
    -v, –verbose lista los ficheros procesados detalladamente
    –warning=PALABRA CLAVE control de aviso
    -w, –interactive, –confirmation
    preguntar por confirmación en cada acción

    Opciones de compatibilidad:

    -o al crear, lo mismo que –old-archive; al extraer,
    lo mismo que –no-same-owner

    Otras opciones:

    -?, –help Entrega esta lista de ayuda
    –restrict deshabilitar el uso de algunas opciones
    potencialmente dañinas
    –usage dar un mensaje corto de uso
    –version Muestra la versión del programa

    Los argumentos obligatorios u opcionales para opciones largas son también
    obligatorios u opcionales para cualquier opción corta correspondiente.

    El sufijo de respaldo es «~», a menos que se establezca con –suffix o
    SIMPLE_BACKUP_SUFFIX.
    El control de versiones puede establecerse con –backup o VERSION_CONTROL, los
    valores son:

    none, off no hacer copias de respaldo
    t, numbered hacer copias de respaldo numeradas
    nil, existing numeradas si existen copias numeradas, simples en otro caso
    never, simple hacer siempre copias de respaldo simples

    Los argumentos válidos para la opción –quoting-style son:

    literal
    shell
    shell-always
    c
    c-maybe
    escape
    locale
    clocale

    Las opciones predeterminadas de *esta* versión de tar son:
    –format=gnu -f- -b20 –quoting-style=escape –rmt-command=/usr/sbin/rmt
    –rsh-command=/usr/bin/rsh

    Comunicar errores a .

    • Pedro Ventura
      / Responder

      Hola Héctor,

      Muchas gracias por tu comentario y dejar el resto de informacion de MAN y aportar de este modo a tener un artículo mucho más completo!

      Muchas gracias y un saludo!

  9. Alexander
    / Responder

    Muy instructivo, gracias.

  10. winder
    / Responder

    excelente aporte! de mucha ayuda!
    Gracias

  11. Jorge
    / Responder

    Gracias Pedro en nombre de todos los novatos en linux, me ha servido muchisimo tu artículo.

  12. raul
    / Responder

    Gracias! simple y explicativo… lo q me ayuda a memorizar el proceso por que tengo q buscarlo cada vez q estoy en cosola

  13. stephani
    / Responder

    muy buen aporte gracias

  14. Pingback: Indexar las búsquedas full-text con Sphinx. Tutorial como usar Sphinx | Pedro Ventura

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¡Comparte este artículo! »

Sígueme en Facebook »

  • MRMOOT (4 días)
    Buenas tardes Pedro, estoy intentando aplicar tu procedimiento y me…
  • Luis (2 meses)
    Hola Pedro, muchas gracias por transmitirnos tu conocimiento. Te comento…
  • Senado.es: Vuelta al año 2000 - Yorokobu (2 meses)
    […] desarrollador Pedro Ventura explica en su blog cómo alternativas…
  • Pedro Ventura (2 meses)
    Hola Edwer La manera de como hacerlo viene explicada en…
  • Rodrigo (2 meses)
    Tengo una duda, como hago para no repetir el tweet?…
  • Jorge (2 meses)
    Tambien se puede vaciar un archivo con "true > archivo",…

Suscríbete al newsletter »

Proporciona tu correo electrónico a continuación y recibe las últimas noticias! Funciona con Feedburner de Google

Archivo »

Leer entrada anterior
Cambiar el nombre de una clase css con javascript y con jquery

Hoy he aprendido una cosita bastante sencilla pero muy util con jquery. Estaba haciendo un pequeño desarrollo con PHP y...

Cerrar