El Empaquetamiento
de Archivos se utiliza cuando uno o más archivos se tienen que
transmitir o almacenar lo más eficientemente posible. Hay dos aspectos:
- El Empaquetamiento Combina varios archivos en
uno solo, lo que elimina la sobrecarga en archivos individuales y los hace
más fácil de transmitir.
- Compresión Hace los archivos más pequeños mediante la
eliminación de información redundante, aunque comprimir un archivo ya
comprimido no lo hará más pequeño.
Compresión
gzip nombre_del_archivo.gz
gzip puede también actuar como un filtro que no lee ni escribe nada en
el disco sino recibe datos a través de un canal de entrada y los escribe a un
canal de salida.
user:tmp $ gzip -l database_backup.gz
compressed uncompressed ratio
uncompressed_name
76866 1028003 92.5%
database_backup
El comando mysqldump –A da salidas a los contenidos de las bases de datos de MySQL locales
a la consola. El carácter | (barra vertical) dice
"redirigir la salida del comando anterior en la entrada del
siguiente". El programa para recibir la salida es gzip, que reconoce que no se dieron nombres de archivo por lo que debe
funcionar en modo de barra vertical. Por último, > database_backup.gz significa
"redirigir la salida del comando anterior en un archivo llamado database_backup.gz. La inspección de este archivo con gzip –l muestra que la versión comprimida es un 7.5% del tamaño original, con
la ventaja de que el archivo más grande jamás tuvo que ser escrito a disco.
Lo contrario del
comando gzip es el comando gunzip. Por otra parte, gzip –d hace la misma
cosa; gunzip es sólo un script que invoca el
comando gzip con los parámetros correctos.
Hay otro par de
comandos que operan prácticamente idénticamente al gzip y gunzip. Éstos son el bzip2 y bunzip2. Estos archivos tienen una
extensión .bz o .bz2 en vez de .gz.
Empaquetado
Tar tiene 3 modos:
- Crear: hacer un archivo nuevo de una serie de
archivos (Create)
- Extraer: sacar uno o más archivos de un archivo (eXtract)
- Listar: mostrar el contenido del archivo sin
extraer (t)
La creación de un
archivo tarball requiere dos opciones. La primera, c, especifica el modo. La segunda, f, le dice a tar que espere un nombre de archivo como el siguiente argumento.
Y después una lista de archivos o un carácter comodín, o
ambos.
El primer argumento
en el ejemplo anterior crea un archivo llamado access_logs.tar. El resto de los argumentos se toman para ser nombres de los archivos
de entrada, ya sea un comodín, una lista de archivos o ambos. En el ejemplo, se
utilizó la opción comodín para incluir todos los archivos que comienzan
con access_log.
Los tarballs pueden
ser comprimidos para transporte más fácil, ya sea comprimiendo
un archivo con gzip o diciéndole a tar que lo haga con la a opción z tal como se
muestra a continuación:
UNIX no trata las
extensiones de archivo especialmente, la convención es usar .tar para los archivos tar y .tar.gz o .tgz para los archivos tar comprimidos. Se puede
utilizar bzip2 en vez de gzip sustituyendo la letra z con j y usando .tar.bz2,.tbz, o .tbz2 para una extensión de archivo
(por ejemplo tar –cjf file.tbz
access_log*).
En el archivo tar,
comprimido o no, puedes ver lo que hay dentro utilizando el comando t:
Este ejemplo utiliza
3 opciones:
- t: listar documentos en el
archivo en el archivo empaquetado
- j: descomprimir con bzip2 antes
de la lectura
- f: operar en el nombre de
archivo access_logs.tbz
Finalmente, se puede
extraer el archivo con la marca –x:
Añade la opción –v y obtendrás una salida detallada de los archivos
procesados.
Es importante
mantener la opción –f al final, ya que el tar asume
que lo que sigue es un nombre de archivo. Si se utiliza un pipe, no se especifica
un archivo con –f, por lo que el tar leerá la
entrada estándar.
Si sólo se requieren
algunos documentos del archivo empaquetado se pueden agregar sus nombres al
final del comando, pero por defecto deben coincidir exactamente con el nombre
del archivo o se utiliza un patrón:
ZIP
El modo
predeterminado del zip es añadir documentos a un archivo y comprimir.
Zip no se efectuará de manera recursiva hacia los subdirectorios por
defecto, lo que es un comportamiento diferente del tar. Es decir,
simplemente añadiendo logs en vez de logs/* sólo añadirá un
directorio vacío y no los archivos dentro de él. Si quieres que zip se comporte de manera parecida, debes utilizar el comando –r para indicar que se debe usar la recursividad:
El listado de los
archivos en el zip se realiza por el comando unzip y la opción –l (listar):
Extraer los archivos
es como crear el archivo, ya que la operación
predeterminada es
extraer:
Tabla Resumen
Comando |
Opciones |
Descripción |
Extensión |
gzip |
|
Comprime |
.gz |
|
-l |
Muestra el nivel de compresión |
|
|
-d |
Descomprime |
|
gunzip |
|
Script para descomprimir |
.gz |
bzip2 |
|
Comprime |
.bz o .bz2 |
bunzip2 |
|
Descomprime |
.bz o .bz2 |
|
|
|
|
|
|
|
|
tar |
|
tar [-opciones] [archivoTar] [ListaArchivos] |
.tar |
|
-c |
Crear tar |
|
|
-x |
Extraer tar |
|
|
-t |
Listar archivos empacados |
|
tar |
-f |
Indica el nombre del archivo (necesario) |
|
|
|
|
|
|
-z |
Compresión con gzip |
.tar.gz o .tgz |
|
-j |
Compresión con bzip2 |
.tar.bz2,.tbz, o .tbz2 |
|
|
|
|
|
-v |
Salida detallada |
|
|
|
|
|
zip |
|
|
.zip |
unzip |
|
|
.zip |
Fuentes consultadas:
(2020) Cisco Networking Academy / Network Development Group
No hay comentarios.:
Publicar un comentario