Como comprimir o descomprimir una carpeta en Linux con línea de comandos

Comprimir o descomprimir una carpeta entera en Linux usando línea de comandos es muy fácil. Es muy útil cuando queremos hacer respaldos (backups) de archivos o ficheros, e incluso enviarlos por email de una sóla vez. Técnicamente, esto se llama comprimir un archivo (conjunto de ficheros). El comando Tar es la mejor herramienta para este trabajo. Hasta puede hacerse de forma remota a un servidor Linux o Unix.
El comando hace 2 cosas para ti:

  1. Crea el archivo
  2. Comprime el archivo

Necesitas usar el comando tar de esta manera:
tar -zcvf nombre-archivo.tar.gz nombre-de-la-carpeta-directorio
En donde,
-z: Comprime el archivo usando el programa gzip
-c: Crea el archivo
-v: Verbose (muestra en pantalla el detalle del proceso)
-f: Nombre del archivo
Por ejemplo, si tienes un directorio llamado /home/juan/documentos y quieres comprimir esta carpeta y guardarla con el nombre documentos-empresa-2014 debes ejecutar el siguiente comando:
$ tar -zcvf documentos-empresa-2014.tar.gz /home/juan/documentos
El comando creará un archivo llamado documentos-empresa-2014.tar.gz en el directorio actual.

Si deseas descomprimir el archivo para restaurar la carpeta debes usar uno de los siguientes comandos:

  1. $ tar -zxvf documento-empresa-2014.tar.gz
  2. $ tar -zxvf documento-empresa-2014.tar.gz -C /tmp

El comando 1 descomprimirá el archivo en el directorio actual.
El comando 2 descomprimirá el archivo en otro directorio a especificar.
En ambos comandos se reemplazó la opción -c por -x, en donde:
-x: Extrae los archivos.