Es muy común necesitar comprimir varios ficheros en uno solo, o un directorio entero, ya sea para que ocupe menos o para poder mandarlos por email o compartirlos en la red. También suele haber que descomprimir ficheros descargados, por ejemplo para compilar un código fuente. En Linux existen diferentes alternativas vía consola, y en éste artículo voy a hacer un repaso a las principales.
Antes de comprimir nada vamos a ver una opción que no comprime los ficheros, sino que los empaqueta tal cual están.
tar <opciones> archivo.tar origenes
El comando tar empaqueta o desempaqueta los archivos indicados en orígenes (pueden indicarse varios archivos separados por espacio), en el fichero archivo.tar. Hay diferentes opciones para comprimir y descomprimir, primero diré los conjuntos de opciones para acciones concretas y después las principales opciones por separado.
- -cvf: Crear el archivo empaquetado.
- -xvf: Desempaquetar archivo.
- -tf: Muestra el contenido.
Las opciones principales de éste programa son:
- -c → create.
- -d → busca las diferencias entre un archivo y el sistema de ficheros.
- –delete → elimina ficheros de un archivo.
- -r → añade archivos a un fichero.
- -t → lista el contenido de un archivo.
- -u → añade ficheros a un archivo sólo si son más nuevos que los de mismo nombre que contiene el archivo.
- -v → verbose: va indicando las acciones que realiza.
- -x → extraer ficheros del archivo.
- -z → comprime con gzip a la vez que se empaqueta.
Pasamos ahora a comprimir y descomprimir archivos. Vamos a ir listando qué hacemos con los diferentes formatos:
- zip:
Comprimir:zip archivo.zip ficheros
Descomprimir:unzip archivo.zip
Ver contenido:unzip -v archivo.zip
- rar:
Comprimir:rar -a archivo.rar ficheros
Descomprimir:unrar e archivo.rar
Ver contenido:rar -v archivo.rar
- gzip:
Comprimir:
gzip archivo
El archivo de salida de salida se llamará archivo.gz, y el original no se conserva.
gzip -c archivo > archivo.gz
Se conserva el archivo original.
Descomprimir:
gzip -d gzip archivo.gz destino
El archivo no se conservará, solo el resultado de la compresión.
Testear:gzip -t archivo.gz
- tar.gz, tgz o tar.z:
Comprimir:tar czfv archivo.tar.gz ficheros
Descomprimir:tar xzvf archivo.tar.gz
Ver contenido:tar tzvf archivo.tar.gz
- tar.bz2:
Comprimir:tar -c ficheros | bzip2 > archivo.tar.bz2
Descomprimir:bzip2 -dc archivo.tar.bz2 | tar -xv
Ver contenido:bzip2 -dc archivo.tar.bz2 | tar -t
- bz2:
Comprimir:bzip2 fichero
Descomprimir:bzip2 -d fichero.bz2
En este punto debo aclarar que tanto gzip como bzip solo comprimen ficheros, no directorios. Para esto debemos empaquetar el directorio con tar y, a continuación, comprimirlo. También cabe decir que bzip2 es mejor que gzip, ya que hace una compresión mayor, pero en cambio consume más memoria y lleva más tiempo comprimirlo.
- arj (Archiver Robert Jung):
Comprimir:arj a archivo.arj ficheros
Descomprimir:
unarj archivo.arj
arj -x archivo.arj
Ver contenido:
arj -v archivo.arj
arl -l archivo.arj
- lha:
Comprimir:lha -a archivo.lha ficheros
Descomprimir:lha -x archivo.lha
Ver contenido:lha -l archivo.lha
El artículo Administración Linux VII – Ficheros comprimidos apareció por primera vez en Instinto Binario.