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
- 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
- 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
- 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.
- 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.