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:
[sourcecode language=»plain»]tar -zcvf nombre-archivo.tar.gz nombre-directorio[/sourcecode]
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.
[sourcecode language=»plain»]tar -xvzf miarcho.tar.gz[/sourcecode]
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
[code]gzip -9 fichero[/code]
Descomprimir
[code] gzip -d fichero.gz[/code]
Ficheros bz2
Comprimir
[code] bzip fichero[/code]
Descomprimir
[code] bzip2 -d fichero.bz2[/code]
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
[code] zip archivo.zip ficheros[/code]
Descomprimir
[code] unzip archivo.zip[/code]
Ficheros rar
Comprimir
[code] rar -a archivo.rar ficheros[/code]
Descomprimir
[code] rar -x archivo.rar[/code]
muy buen aporte gracias
Gracias! simple y explicativo… lo q me ayuda a memorizar el proceso por que tengo q buscarlo cada vez q estoy en cosola
Gracias Pedro en nombre de todos los novatos en linux, me ha servido muchisimo tu artículo.
excelente aporte! de mucha ayuda!
Gracias
Muy instructivo, gracias.
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 .
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!
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.
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!!
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
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.
Encontré la solución poniéndome a leer un poco. Debo agregar -r . Perdón la ignorancia. jaja. Saludos
Muy buen post. Muy útil para usuarios linux sin modo grafico.
Muy buen Post. Excelente aporte.
Gracias!!