3 de julio de 2013

Comprimir tarballs (.tar.gz) desde la terminal

Si no podemos trabajar con un entorno gráfico en nuestra máquina Linux, porque no haya ningún entorno instalado, o porque estemos trabajando en una sesión SSH, o porque simplemente no nos da la gana abandonar la terminal para comprimir o descomprimir un archivo o una carpeta, podemos usar la terminal para crear tarballs (esos archivos comprimidos que terminan en .tar.gz) o para descomprimirlos.

Si queremos comprimir un conjunto de archivos y carpetas, la forma más rápida es usar el comando CD para ir a la carpeta padre en la que se encuentre la carpeta cuyos archivos queremos comprimir. Por ejemplo, si queremos comprimir los archivos que se encuentran dentro del directorio ~/Documentos/Abril_2013, nos iremos a la carpeta ~/Documentos ya que es donde se encuentra la carpeta Abril_2013, cuyos archivos queremos comprimir.

Una vez dentro, ejecutamos el siguiente comando para comprimir esa carpeta en un archivo llamado anteriores.tar.gz. Este nombre es un ejemplo, cámbialo por el nombre que quieras que tenga pero terminado siempre en .tar.gz:

tar -czvf anteriores.tar.gz Abril_2013

Esto archivará el contenido de la carpeta en un archivador llamado anteriores.tar y luego lo comprimirá para crear anteriores.tar.gz. Los cuatro parámetros en forma de letra que indicamos al principio significan lo siguiente:
  • c: Indica que queremos crear un archivo.
  • z: Indica que queremos comprimir ese archivo usando Gzip (.gz).
  • v: Indica que queremos que nos muestre por pantalla los archivos que ha procesado. Podemos omitir esta letra si queremos que no nos escriba en pantalla esa información.
  • f: Indica que debe crear un archivo con los datos procesados, cuyo nombre se indica a continuación.
Si queremos comprimir varios archivos o carpetas en un mismo archivador; por ejemplo, queremos crear un archivador con dos carpetas, o no queremos irnos a la carpeta superior porque hay archivos en la carpeta que no queremos incluir, podemos simplemente irnos directamente a la carpeta donde se encuentran los archivos que queremos comprimir (por ejemplo ~/Documentos/Abril_2013) y ejecutar el siguiente comando, indicando tras el nombre del archivador los nombres de todos los archivos y carpetas a comprimir separados por espacios. Si un archivo tiene espacios debemos anteponer una barra lateral (\) delante del espacio del archivo para que no lo considere como una separación entre dos archivos:

tar -czf anteriores.tar.gz InformeVentas.pdf InformeCompras.pdf Informe\ Resultados.pdf