Como empaquetar, desempaquetar y comprimir en linux

Publicado el 30 septiembre 2014 por Dbigcloud @dbigcloud

Hoy os voy a dejar una pequeña chuleta de como empaquetar y comprimir directorios en linux, usando las herramientas más comunes como son tar, gz, bz2 o zip, algo que todo administrador se sistema debe saber hacer y que a veces se olvida.

Empaquetar directorios es una de las tareas mas comunes que un Administrador de Sistemas realizar regularmente, una tarea muy útil cuando queremos realizar backups.

Las opciones para empaquetar y desempaquetar con el comando tar son las siguiente:

Si queremos empaquetar usaremos: 

tar -cvf dbigcloud.tar /directorio/ 

Si queremos desempaquetar usaremos: 

tar -xvf dbigcloud.tar

 Si lo unico que queremos es ver el contenido del paquete: 

tar -tf dbigcloud.tar

Ahora llega el momento de comprimir dichos paquetes, podemos realizarlo con gz, bz2, zip... os vamos a explicar a usar los mas comunes.

Comprimir y descomprimir con ficheros gz:

Para comprimir usaremos el comando:

gzip -9 fichero

 Para descomprimir usaremos:

gunzip dbigcloud.gz

Comprimir y descomprimir con ficheros bz:

Para comprimir usaremos el comando:

bzip fichero

Para descomprimir usaremos:

bzip2 -d dbigcloud.bz2

Comprimir y descomprimir con ficheros zip:
Para comprimir usaremos el comando:

zip dbigcloud.zip ficheros

Para descomprimir usaremos:

unzip dbigcloud.zip

Para ver el contenido usaremos:

unzip -v dbigcloud.zip

Podemos combinar el uso de tar con gz y bz2, para empaquetar/desempaquetar y comprimir/descomprimir.

Ficheros tar.gz

Empaquetar y comprimir

tar -czfv dbigcloud.tar.gz ficheros

Desempaquetar y descomprimir

tar -xzvf dbigcloud.tar.gz

Ver contenido

tar -tzf dbigcloud.tar.gz

  

Ficheros tar.bz2

Empaquetar y comprimir:

tar -c ficheros | bzip2 > archivo.tar.bz2

Desempaquetar y descomprimir

bzip2 -dc archivo.tar.bz2 | tar -xv

Ver contenido

bzip2 -dc archivo.tar.bz2 | tar -t 

Otra la posibilidad de empaquetar, comprimir es enviar el destino por red , lo podemos realizar de la siguiente forma:

Usando SSH 

tar zcvf - /dbigcloud | ssh root@dbigcloud "; cat > /backup/dbigcloud.tar.gz"

Esta misma operación podemos realizarla con el comando rsync

rsync -z dbigcloud root@dbigcloud:/backup/

 Estas dos últimas opciones son bastante útil en caso de querer realizar backups de ficheros/directorios y almacenarlos en un destino distinto al servidor donde se encuentran. 

ACTUALIZACIÓN

Como hemos hablado anteriormente de backups, os voy a enseñar este truquillo si queries empaquetar un directorio y guardarlo por fecha.

tar -czvf "Backup_DBigCloud_"$(date +"%Y%m%d").tar.gz /ruta/dbigcloud/

 Si añadimos esta linea al crontab cada X horas/dias se nos guardará un fichero llamado por ejemplo Backup_DBigCloud_200141003.tar.gz del contenido de /ruta/debigcloud asi podeis programar vuestras copias de seguridad de ficheros o directorios.