Manual introductorio Universitat Oberta de Catalunya
GNU/Linux Manual introductorio

Compresión y archivo

gmmd

A empaquetar

Las utilidades de archivo sirven para «empaquetar» juntos un conjunto de ficheros en un único fichero nuevo. En Windows estas funciones se pueden realizar mediante programas como PKZip (o WinZip) , que además de crear un archivo de ficheros pueden comprimirlo.

Para realizar funciones de archivo en Linux disponemos del comando tar. Las primeras versiones del comando no realizaban funciones de compresión, pero se han añadido en versiones posteriores. Para crear un archivo de ficheros se debe usar la opción -c. Para indicar el fichero de archivo (el que contendrá a los demás) se utiliza la opción -f seguida de un nombre. El siguiente ejemplo crea un archivo llamado midirectorio.tar con todos los archivos con extensión ‘.txt’ de nuestro directorio actual:

$ tar -cf midirectorio.tar *.txt

Si queremos que además de crear el archivo lo comprima, añadiremos la opción -z:

$ tar -czf midirectorio.tar *.txt

Para descomprimir los ficheros contenidos en un archivo, se usa la opción -x. Igual que antes, debemos usar la opción -f seguida de un nombre de fichero para indicar que fichero deseamos descomprimir. Añadiremos también la opción -z para informar que el archivo se creó comprimido:

$ tar -xzf midirectorio.tar

En cualquiera de estos casos se puede añadir -v para que el comando muestre información mientras se ejecuta.

Si al comando tar le pasamos como parámetro el nombre de un directorio, agrupará todo el árbol de directorios por debajo de él y su contenido de forma que, al descomprimirlo, podremos recuperar exactamente la misma estructura. Pruébalo con diferentes directorios para ver como funciona.

Compresión

Independientemente del comando anterior, Linux ofrece otro comando para comprimir ficheros uno a uno, gzip. Para utilizarlo simplemente hay que escribir el comando seguido de su nombre. Por ejemplo, la siguiente orden comprime el fichero telefonos.txt:

$ gzip telefonos.txt

El comando le añade la extensión ‘.gz’ para indicar que es un fichero comprimido (telefonos.txt.gz). Para descomprimirlo usaremos el mismo comando con la opción -d:

$ gzip -d telefonos.txt.gz

zip y unzip

zip

En Linux también podemos comprimir y descomprimir archivos .zip. Para comprimir podemos usar el comando zip de la siguiente manera:

zip -<opciones> <archivo comprimido> <lista de archivos a comprimir>

Así, podríamos hacer:

$zip telefonos telefonos.txt telefonos2.txt

Y nos crearía un archivo telefonos.zip que contendría los dos archivos de texto comprimidos.

Con la opción ‘r‘ podemos comprimir un directorio entero. Es interesante ver el contenido de man para el comando zip para ver todas sus posibilidades.

unzip

Igual que podemos comprimir con zip, podemos descomprimir con unzip. El comando se usa de la siguiente manera:

unzip -<opciones> <archivo comprimido> [<lista de archivos a descomprimir>]

Por defecto, y acostumbrará a ser la opción más usada, si no se ponen opciones ni lista de archivos a descomprimir, se descomprimirá todo el archivo, conservando, si lo hubiese, el árbol de directorios.