miércoles, 27 de junio de 2007

comprimir y descomprimir archivos en linux con tar

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

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

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

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

4) 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

No hay comentarios: