Existen muchos tipos de formatos para comprimir archivos en linux, por ello para poder comprimir o descomprimir archivos desde terminal. Los programa que comprimen utiliza un algoritmo para comprimir, unos utiliza LZ77 de la familia de los compresores de texto sin perdidas, al contrario de los que utiliza lossy, que estos intentan omitir información buscando disminuir el peso.
Alguno de formatos de compresión que conozco y utilizo:
- TAR: Realmente no es formato compresión, sino mas bien formato de empaquetado.
- Zip: Utilizado windows, linus y OS. Seguramente uno de los mas conocidos, eso no implica que sea el que mejor comprima. Extensión .zip
- Gzip: Es un sistema de GNU y muy utilizado en plataformas linus y unix, en windows se puede utilizar pero necesitas de software adicional (7-zip, WinRAR).El ratio de compresión es mucho mayor que zip. Extensión .gz
- BZip: Superior al anterior y con licencia BSD. Tanto este formato como el anterior solo permite comprimir un solo fichero, por lo que si queremos empaquetar varios ficheros , debemos utilizar el formato Tar. La extensión sería .bzip y paquete seria .tar.bz2
- RAR: Formato de compresión propietario, super conocida por su aplicación WinRar, pero nosotros aquí lo descartamos , precisamente por ser un software privado. Extensión .rar
- 7-Zip: Formato de compresion que trae el software 7-Zip, que es libre y multiplataforma. Extensión .7z ( Nuestra recomendación para aquellos que utiliza windows.)
- xz: Este formato es el que utilizamos para compresión de las copias de seguridad de nuestras base de datos.
Si quiere saber mas y ver mas sobre ellos puedes verlo en https://www.emezeta.com/articulos/la-guia-definitiva-de-formatos-de-compresion
Desde terminal como los utilizo
El comprimir /descomprimir ficheros desde terminal es la forma que recomendamos hacerlo ya que piensamos que mucho mas rápido que utilizando un programa visual. Si trabajas con servidores y por terminal se convierte en imprescindible ya que sino sabes no puedes realizarlo.
Instrucciones básicas de compresión/descomprimir para linux
Fichero Tar ( Empaquetado y desempaquetar)
Recuerda que este no es un sistema de compresión.
Empaquetar:
tar -cvf archivo.tar /dir/a/comprimir/
Desempaquetar:
tar -xvf archivo.tar
Ver contenido:
tar -tf archivo.tar
Fichero Zip
Este no viene por defecto en instalaciones de linux, es el mas conocido, pero es el que mejor resultado consigues.
Comprimir:
zip archivo.zip ficheros
Descomprimir:
unzip archivo.zip
Ver contenido:
unzip -v archivo.zip
Fichero GZip
Es un sistema de GNU y muy utilizado en plataformas linus y unix, en windows se puede utilizar pero necesitas de software adicional (7-zip, WinRAR).El ratio de compresión es mucho mayor que zip. Extensión .gz
Comprimir:
gzip -9 fichero
Descomprimir:
gzip -d fichero.gz
Recuerda de este sistema compresión solo permite comprimir un solo fichero, por ello si quieres comprimir varios tienes que utilizar tar para empaquetar.
Comprimir y empaquetar :
tar -czf archivo.tar.gz ficheros
Descomprimir ficheros empaquetados y comprimidos con tar/gzip:
tar -xzvf archivo.tar.gz
Ver contenido empaquetado:
tar -tzf archivo.tar.gz
Fichero con extension xz
Comprimir
La compresion es muy sencilla:
xz file
Este comprime el fichero file, pero lo elimina y lo sustituye por uno comprimido añadiendo al extension .xz
Si lo queremos es que mantenga el fichero original.
xz -k file
Asi mantiene el fichero.
Descomprimir
Con la opcion -d
xz -d file.xz
O tiene otra opcion poniendo unxz
unxz file.xz
Comprimir con Git
Todos sabéis que nosotros adoramos git, que es nuestro controlador de versiones favorito, por ello también pongo como comprimir con git
git archive --format=tar.gz --prefix=miDirectoriox/ -o ~/nombrefichero.tar.gz rama
Explicacion de por parte la instrucción :
--format=tar.gz -> Formato de compresion del fichero que vamos a crear, segun git help archive nos dice que puede ser zip o tar.
-o ~/nombrefichero.tar -> es la ruta y nombre de fichero comprimido que vamos crear
--prefix=miDirectoriox/ -> es el directorios donde esta nuestro repositorios. ( Si esta en el no hace falta)
rama -> la rama queremos copiar sin el .git
Otras fuentes:
https://sololinux.wordpress.com/2008/07/27/comprimir-y-descomprimir-desde-la-terminal-de-linux/