Comprimir archivos es esencial en el área de administración de sistemas.
A veces se necesita mover grandes cantidades de archivos de un servidor a otro y ni hablar de la generación de respaldos.
Que mejor que empaquetar y comprimir los archivos para ahorrar espacio en disco y transferencia.
Los formatos de compresión más comunes en GNU/Linux son tar, tar.gz, y zip.
Veremos como crear y extraer archivos comprimidos desde la consola.
Para crear archivos tar bastará con ejecutar:
tar cvpf archivo.tar directorio
En donde archivo.tar es el nombre que se eligió para el ejemplo y directorio es el directorio a comprimir.
Las opciones que se utilizaron son: C= crear V= verboso P= permisos F= nombre
Esto quiere decir que creamos un archivo tar visualizándolo en pantalla manteniendo los permisos originales y la F indica que le daremos un nombre al archivo tar.
Si queremos empaquetar más directorios y/o archivos simplemente ejecutamos:
tar cvpf archivo.tar directorio directorio2 archivo archivo2
Si queremos empaquetar todo el contenido de un directorio ejecutamos:
tar cvpf archivo.tar *
Para extraer el tar que creamos, llamado archivo.tar ejecutamos:
tar xvpf archivo.tar
Las opciones ya las conocemos, solo cambia la C por la X, que indica Extracción de los archivos empaquetados.
En los ejemplos anteriores vimos como crear y extraer con tar, que lo que hace es empaquetar archivos y/o directorios dentro de un único archivo.tar.
Si queremos añadir compresión, de manera que nos quede un archivo empaquetado con tar y comprimido con zip, dando como resultado la extensión .tar.gz, es mínimo el cambio que se debe hacer, por ejemplo:
tar cvpzf archivo.tar.gz directorio
Aquí lo que hicimos fue empaquetar y comprimir, añadiendo la opción Z, que lo que indica es que se comprima con zip.
En el ejemplo creamos un archivo comprimido llamado «archivo.tar.gz»
Para descomprimirlo basta con cambiar la C por la X, como vimos con el ejemplo anterior.
Algo destacable es que podemos evitar comprimir ciertos archivos que estén dentro de un directorio, excluyéndolos de la compresión.
Por ejemplo si deseo comprimir mi directorio personal para hacer un respaldo pero NO quiero guardar 100GB de vídeos que tengo, puedo excluir el directorio de vídeos.
Por ejemplo:
tar -cvzpf archivo.tar.gz directorio/ --exclude='videos'
Claro que puedo sumar más directorios a la exclusión, por ejemplo:
tar -cvzpf archivo.tar.gz directorio/ --exclude='videos'--exclude='musica'
Ahora vamos a dar un vistazo al comando zip:
zip -r archivo.zip .
(noten el punto al final) comprimimos recursivamente todo lo que haya en el directorio en donde estemos parados y creamos «archivo.zip»
Si queremos comprimir un path específico lo hacemos de esta forma:
zip -r archivo.zip /home/pepe/documentos
Lo que hicimos fue comprimir documentos dentro de «archivo.zip»
Podemos proteger los archivos .zip con contraseña, de esta manera:
zip -P CONTRASEÑA -r archivo.zip directorio
En CONTRASEÑA irá la contraseña que queramos ponerle al «archivo.zip» que contendrá a «directorio», siendo éste último el directorio que queramos comprimir.
Esperamos que les haya sido útil, hasta la próxima.