Cómo comprimir archivos y directorios en Linux

Linux

Los archivos comprimidos usan menos espacio en disco y tardan más en descargarse. Afortunadamente puedes comprimir archivos y directorios usando las herramientas Gzip, Tar o Zip en casi todas las distribuciones de Linux. Todas estas herramientas son de código abierto.

Comprimir y descomprimir archivos en Linux usando ZIP

ZIP es un una utilidad y un formato de compresión y empaquetado de archivos. Para comprimir los archivos usamos el comando zip y para descomprimirlos usamos el comando unzip.

Comprimir un archivo en ZIP

# zip -r archivo.zip directorio

Si se usa el comando para comprimir archivos en un archivo zip ya existente, se sobrescribirán las entradas o archivos por los nuevos en caso de que ya existiesen.

Descomprimir un archivo ZIP

# unzip archivo.zip

Especificaciones del comando ZIP (Avanzado):

Todas las opciones están entre corchetes.

  • zip [-aABcdDeEfFghjklLmoqrRSTuvVwXyz!@$] [-b ruta] [-n sufijos] [-t mmddaaaa] [-tt mmddaaaa] [ archivo_zip [ archivo1 archivo2 …]] [-xi lista]

Opciones (flags) básicos del comando zip:

  • -d: Eliminar archivos o directorios de un archivo zip. Se pueden especificar los archivos uno a uno o usar expresiones regulares. Pongamos el siguiente ejemplo:# zip -d archivo dir1/dir2/elemento dir1/dir3/\* \*.oCon el comando anterior se eliminará el archivo dir1/dir2/elemento, todos los archivos que estén en el directorio ir1/dir3/ y todos los archivos que terminen por .o y que estén en cualquier directorio.
  • -e: Usar un password que se preguntará mediante consola para encriptar los contenidos del archivo zip resultante.
  • -F: Se intentará arreglar el archivo zip si se han corrompido o perdido algunas partes. No se asegura que sea posible recuperar los datos.
  • -h: Mostrar la ayuda del comando zip.
  • -L: Mostrar la licencia del programa.
  • -o: Hacer que la fecha de la última modificación del archivo zip sea la fecha del último archivo que ha sido modificado dentro del archivo zip.
  • -0…9: Indicar la velocidad y el ratio de compresión, en donde 0 significa una mayor velocidad pero sin ninguna compresión. 9 significa un alto grado de compresión pero a una velocidad muy lenta.
  • -r: Se utiliza para comprimir recursivamente los archivos de cada subdirectorio.

Comprimir y descomprimir archivos en Linux usando gzip

El comando Gzip crea archivos comprimidos con extensión .gz y el comando Gunzip extrae los archivos comprimidos y, por defecto, elimina el archivo .gz original.

Comprimir un archivo en formato gz:

# gzip -9 archivo.ext

El archivo se guardará como archivo.ext.gz

Descomprimir un archivo en formato gz:

Si queremos descomprimir los archivos comprimidos con GZIP en el directorio actual, usamos el comando Gunzip.

# gunzip archivo.ext.gz

El comando Gunzip reconoce y descomprime archivos con las siguientes extensiones: «.gz», «-gz», «_gz», «.Z», «-Z», «_Z», «.tgz», «-tgz», «_tgz», «.taz», «-taz», and «_taz», «.cgz», «-cgz», «_cgz», «.ngz», «-ngz», «_ngz».

Especificaciones de los comandos gzip, gunzip y gzcat (Avanzado):

Todas las opciones están entre corchetes.

  • gzip [-123456789cdfghLlNnOqrtVv] [-b bits] [-o nombre_archivo] [-S sufijo] [archivo …]
  • gunzip [-cfhlNnqrtv] [-o nombre_archivo] [archivo …]
  • gzcat [-fghqr] [archivo …]

Opciones (flags) del comando gzip:

  • -1…9: Comprime los archivos con el ratio de compresión deseado. -1 es el factor de compresión más rápido pero la compresión obtenida es bastante pobre. -9 es el factor de compresión más lento, pero el archivo resultante está muy bien comprimido.
  • -c: Los resultados se escriben en la salida estándar en lugar de crear o modificar archivos. Sería equivalente a usar el comando gzcat.
  • -d: Descomprimir los archivos con el comando gzip como si se tratase de gunzip.
  • -h: Mostrar ayuda y opciones.
  •  -k: No eliminar los archivos originales al descomprimir.
  • -l: Listado de los archivos que hay dentro de un archivo comprimido. Se mostrará el tamaño de los archivos comprimidos, el tamaño de los archivos al descomprimirse, el ratio de compresión, el nombre de los archivos al descomprimirse, el método de compresión, el código CRC del archivo descomprimido y la fecha y hora «timestamp» de la última modificación de los archivos comprimidos.
  • -L: Mostrar licencia del programa.
  • -n: Al comprimir, no guardar ni restaurar las fechas de los archivos originales.
  • -N: Al hacer un listado o descomprimir, mostrar las fechas de los archivos originales.
  • -o: Indicar el nombre del archivo resultante.
  • -O: Usar el formato de compresión compress (1).
  • -q: No mostrar los avisos cuando se comprime o descomprime un archivo.
  • -r: Realizar la operación recursivamente para todos los subdirectorios.
  • -S: Agregar un sufijo a los archivos comprimidos.
  • -t: Comprobar la integridad del archivo comprimido.
  • -v: Mostrar detalles como el porcentaje de compresión de cada archivo.
  • -V: Mostrar la versión del programa.

Comprimir y descomprimir archivos en Linux usando TAR

TAR es sencillamente un método de empaquetado de archivos que permite almacenar una colección de archivos y directorios en uno solo. El comando tiene muchas opciones y, entre otras, dispone de una para agregar compresión gzip al archivo resultante.

Comprimir un archivo en formato TAR:

# tar -czf archivo_resultante.tar.gz directorio_a_comprimir

Para descomprimir un archivo en formato TAR en el directorio actual:

# tar -zxvf archivo.tar.gz

Descomprimir un archivo TAR en otro directorio:

# tar -zxvf archivo.tar -C /directorio

Especificaciones del comandos TAR (Avanzado):

Todas las opciones y parámetros que es posible configurar están entre corchetes.

  • gzip [-123456789cdfghLlNnOqrtVv] [-b bits] [-o nombre_archivo] [-S sufijo] [archivo …]
  • gunzip [-cfhlNnqrtv] [-o nombre_archivo] [archivo …]
  • gzcat [-fghqr] [archivo …]

Opciones (flags) básicos del comando TAR:

  • -c: Se utiliza para crear un archivo como resultado o sobreescribir el existente.
  • -C: Se usa para especificar el directorio en el que los archivos deben ser extraídos.
  • -f: Para especificar el nombre del archivo resultante.
  • -h: Seguir los enlaces simbólicos como si fuesen parte del directorio en el que están.
  • -H: Seguir solamente los enlaces simbólicos que se especifiquen en la línea de comando.
  • -j: Utilizar la utilidad b2zip para comprimir los archivos.
  • -r: Agregar los nuevos archivos a un archivo TAR existente.
  • -t: Listar el contenido de un archivo TAR.
  • -u: Se trata de un alias para -r. Es posible especificar el nombre de los archivos para listar solamente ésos.
  • -v: Se utiliza para mostrar el progreso mientras se comprime el archivo o directorio.
  • -w: Renombrar los archivos. Se preguntará por consola el nombre de cada archivo antes de de almacenarlo en el archivo TAR.
  • -x: Extraer los archivos de un archivo TAR. Es posible especificar los archivos que se desean extraer en caso de no querer extraerlos todos.
  • -z: Comprimir el archivo utilizando gzip.
  • -Z: Utilizar la utilidad compress para comprimir los archivos.

Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”