> Faqs > Comprimir y descomprimir archivos en Linux

Comprimir y descomprimir archivos en Linux

Deseo saber cómo comprimir y descomprimir ficheros en Linux en un servidor web al que accedo por SSH.

Es decir, realizar las tareas de compresión y descompresión, trabajando en línea de comandos de Linux.

Respuestas

Comprimir y descomprimir archivos es una de las tareas mas comunes que vamos a tener que realizar en Linux por línea de comandos. Podemos hacerlo mediante diversas herramientas, pero existen dos que van a estar disponibles en casi cualquier distribución.

Son dos herramientas que se tienen que utilizar de manera complementaria. Se trata de tar, que simplemente empaqueta varios archivos en un único fichero, y gzip, que hace la compresión propiamente dicha.

El comando tar tiene la siguiente sintaxis:

 tar [opciones] [origen] [destino]

Donde opciones son, por ejemplo, las siguientes:

  • c: crear un archivo
  • x: extraer de un archivo
  • t: listar los contenidos de un archivo
  • v: ver un reporte de las acciones a medida que se van realizando
  • f: empaquetar contenidos de archivos
  • z: para comprimir a la vez que se empaqueta

Como se puede ver, con la opción z se puede comprimir en el mismo paso en el que se empaqueta, lo que puede hacer las cosas más rápidas y cómodas. De todos modos, tar simplemente hace el empaquetado y es gzip el que realiza la compresión. Simplemente que nosotros no tenemos que llamar a gzip, sino que ya lo hace directa e internamente tar.

Ejemplos de compresión de archivos en Linux

  1. Si queremos empaquetar un directorio llamado "html" y guardar los datos en "html-paq.tar", lo haríamos con la sentencia:
 tar cvf html-paq.tar html
  1. Si queremos comprimir un directorio llamado "archivos" y guardarlo en un fichero llamado "archivos-comp.tgz", `podríamos hacer algo como esto:
 tar czvf archivos-comp.tgz archivos

Si nos fijamos, en este caso el nombre del archivo comprimido le hemos puesto extensión .tgz, que indica que está empaquetado y comprimido.

Ejemplos de comandos para descomprimir los archivos

  1. Si queremos desempaquetar un archivo llamado xxx.tar podemos utilizar un comando como este:
 tar xvf xxx.tar

Eso supone que tenemos el archivo xxx.tar en el mismo directorio desde donde lanzamos el comando. Los contenidos se desempaquetarán en el mismo directorio donde estamos situados.

  1. Si el archivo que queremos desempaquetar está comprimido. Es decir, si queremos descomprimir y desempaquetar en un solo paso, tenemos que hacerlo con la opción z del comando tar. Algo como esto:
 tar xzvf xxx.tgz

Con estos comandos de ejemplos podrás resolver cómodamente la mayoría de las operativas de compresión y descompresión en Linux. Es prácticamente un copiar y pegar ;)

En esta otra FAQ se explica cómo comprimir y descomprimir archivos zip por línea de comandos.

Miguel Angel
3295 146 215 17

También puedes usar zip para comprimir archivos en Linux, y por tanto unzip para descomprimir. Es una extensión más popular, por lo que los archivos comprimidos luego los puedes enviar a personas que no tienen experiencia o que desconcen otros formatos de archivos comprimidos.

Por supuesto, puedes usar zip para comprimir y descomprimir por línea de comandos en Linux.

Lo primero es que no siempre tienes disponible el comando zip por línea de comandos, por lo que lo tendrás que instalar. Si estás en Ubuntu u otros sistemas basados en Debian:

sudo apt install zip

Compresión de archivos con el comando zip

Ahora, para comprimir un archivo (solo un archivo), lanzas el comando:

zip archivo_comprimido archivo-a-comprimir.txt

Si lo que quieres es comprimir una carpeta y todo su contenido, lo tienes que hace recursivo, con el flag -r, con un comando como este:

zip -r archivo_comprimido carpeta-a-comprimir

Descomprimir archivos con el comando unzip

Para descomprimir tienes el comando unzip, que este sí suele estar disponible de base en los sistemas Linux.

unzip archivo_comprimido.zip
Borja
325 6 27 17