Objetivo:
Aprender a comprimir y descomprimir ficheros en Linux utilizando los compresores gzip, bzip2 y zip, comprender las diferencias entre ellos, y aprender a combinar la compresión con el comando tar para empaquetar y comprimir en un solo paso.
Escenario:
- Herramientas: Terminal de Linux y un sistema Debian o basado en Debian.
- Conceptos clave:
gzip,gunzip,bzip2,bunzip2,zip,unzip, opción-k, opción-r, opción-l,tar czf.
Instrucciones:
Fase 1: Comprimir un único fichero con gzip
- Abre una terminal y accede a tu directorio personal:
- Copia el fichero
/etc/passwda tu directorio actual: - Renombra el fichero copiado para no confundirlo con otros:
- Comprime el fichero con
gzip: - Comprueba el resultado:
- Observa que se ha generado un fichero
usuarios.gzy que el fichero original ha desaparecido.
cd
cp /etc/passwd .
mv passwd usuarios
gzip usuarios
ls -ltr
Fase 2: Conservar el fichero original al comprimir
- Comprime el fichero
copiaficheros.tarcreado en una práctica anterior, conservando el fichero original mediante la opción-k: - Comprueba el resultado:
- Observa que en este caso, a diferencia del paso anterior, se conservan tanto el fichero original como el fichero comprimido
copiaficheros.tar.gz.
gzip -k copiaficheros.tar
ls -ltr
Fase 3: Comprimir varios ficheros con gzip
- Crea un nuevo directorio para trabajar con varios ficheros:
- Accede al directorio recién creado:
- Copia a este directorio todos los ficheros de
/etccuyo nombre empiece porp: - Comprueba los ficheros copiados:
- Comprime todos los ficheros del directorio con
gzip: - Comprueba el resultado:
- Observa que
gzipgenera un fichero comprimido independiente por cada fichero, en lugar de un único fichero conjunto.
mkdir compresion
cd compresion
cp /etc/p* .
ls -l
gzip *
ls -l
Fase 4: Descomprimir ficheros con gunzip
- Descomprime todos los ficheros del directorio:
- Comprueba que los ficheros han recuperado su formato original:
gunzip *
ls -l
Fase 5: Consultar estadísticas de compresión con gzip -l
- Comprime de nuevo todos los ficheros del directorio:
- Consulta las estadísticas de compresión de los ficheros:
- Observa el tamaño comprimido, el tamaño original y el porcentaje de compresión conseguido para cada fichero.
gzip *
gzip -l *
Fase 6: Comprimir y descomprimir con bzip2
- Descomprime de nuevo los ficheros del directorio:
- Comprime todos los ficheros utilizando
bzip2: - Comprueba el resultado:
- Observa la extensión que genera este compresor y compárala con la generada por
gzip. - Descomprime los ficheros con
bunzip2:
gunzip *
bzip2 *
ls -l
bunzip2 *
Fase 7: Comprimir con zip
- Comprime todos los ficheros del directorio en un único fichero llamado
copia.zip: - Comprueba el resultado:
- Vuelve al directorio anterior y comprime de forma recursiva todo el contenido de tu directorio personal en un fichero llamado
copiatotal.zip:
zip copia.zip *
ls -l
cd ..
zip -r copiatotal.zip *
Fase 8: Descomprimir con unzip en otra ubicación
- Accede al directorio de restauración creado en una práctica anterior y vacía su contenido:
- Descomprime el fichero
copiatotal.zipen este directorio, indicando la ruta completa donde se encuentra (sustituye la ruta por la de tu propio usuario): - Comprueba que el contenido se ha extraído correctamente:
cd /tmp/restore
rm -rf *
unzip /home/usuario/copiatotal.zip
ls -l
Fase 9: Empaquetar y comprimir en un solo paso con tar
- Desde tu directorio de restauración, crea un fichero tar comprimido directamente con la opción
z, sin necesidad de comprimir por separado: - Comprueba el resultado:
- Observa que se ha generado directamente el fichero comprimido
copia1.tar.gzen un único comando.
tar czf copia1.tar.gz *
ls -ltr
Preguntas de reflexión:
- ¿Qué diferencia principal existe entre
gzipyzipa la hora de trabajar con varios ficheros? - ¿Qué ocurre con el fichero original al comprimirlo con
gzipsin utilizar ninguna opción adicional? - ¿Para qué sirve la opción
-kdel comandogzip? - ¿Qué diferencia existe entre
gzipybzip2? - ¿Qué comandos se utilizan para descomprimir ficheros comprimidos con
gzipy conbzip2respectivamente? - ¿Qué información proporciona la opción
-ldel comandogzip? - ¿Por qué se recomienda utilizar
zipen lugar degzipobzip2cuando los ficheros se van a compartir con usuarios de Windows? - ¿Para qué sirve la opción
-rdel comandozip? - ¿Qué ventaja tiene utilizar
tarcon la opciónzfrente a hacer primero untary después comprimirlo por separado congzip? - ¿Qué combinación de opciones utilizarías para crear, en un solo comando, un fichero
tarcomprimido congzip?
Haz clic aquí para ver las soluciones y explicaciones
1. ¿Qué diferencia principal existe entre gzip y zip a la hora de trabajar con varios ficheros?
gzip comprime cada fichero de forma individual, generando un fichero comprimido por cada uno de ellos. zip, en cambio, puede agrupar varios ficheros en un único fichero comprimido.
2. ¿Qué ocurre con el fichero original al comprimirlo con gzip sin utilizar ninguna opción adicional?
El fichero original se elimina automáticamente una vez generado el fichero comprimido, a menos que se indique lo contrario con una opción específica.
3. ¿Para qué sirve la opción -k del comando gzip?
Permite conservar el fichero original tras la compresión, de modo que se mantienen tanto el fichero original como el fichero comprimido.
4. ¿Qué diferencia existe entre gzip y bzip2?
Ambos funcionan de manera muy similar, pero bzip2 utiliza un algoritmo de compresión distinto que, en teoría, puede ofrecer mejores resultados en algunos casos, aunque en la práctica la diferencia no suele ser muy significativa.
5. ¿Qué comandos se utilizan para descomprimir ficheros comprimidos con gzip y con bzip2?
Para descomprimir ficheros de gzip se utiliza gunzip, y para descomprimir ficheros de bzip2 se utiliza bunzip2.
6. ¿Qué información proporciona la opción -l del comando gzip?
Muestra un resumen con el tamaño del fichero comprimido, el tamaño del fichero original y el porcentaje de compresión conseguido.
7. ¿Por qué se recomienda utilizar zip cuando los ficheros se van a compartir con usuarios de Windows?
Porque el formato zip es mucho más habitual y compatible en entornos Windows, mientras que los formatos generados por gzip o bzip2 son menos comunes en ese sistema operativo.
8. ¿Para qué sirve la opción -r del comando zip?
Permite comprimir de forma recursiva, incluyendo el contenido de todos los subdirectorios a partir del directorio indicado, y no solo los ficheros del directorio actual.
9. ¿Qué ventaja tiene utilizar tar con la opción z frente a hacer primero un tar y después comprimirlo por separado?
Permite empaquetar y comprimir en un único comando, sin necesidad de ejecutar primero tar y después gzip de manera independiente, resultando en un proceso más rápido y cómodo.
10. ¿Qué combinación de opciones utilizarías para crear, en un solo comando, un fichero tar comprimido con gzip?
Se utilizaría la combinación tar czf, donde c indica crear, z indica que se debe comprimir con gzip, y f indica el nombre del fichero de destino.
Ficha de Laboratorio: Compresores en Linux (gzip, bzip2, zip)
Instrucciones de entrega:
- Rellena los campos y responde en este formulario desde tu navegador.
- Pulsa el botón de imprimir al final de la página.
- Selecciona "Guardar como PDF" en el diálogo de impresión.
- Entrega el archivo PDF en el aula virtual.
Alumno/a: Fecha:
Grupo:
Completa la ficha realizando las siguientes actividades:
- Comprime un fichero individual con
gzipy observa qué ocurre con el original.
Escribe el comando utilizado:
Copia aquí la salida dels -ltrtras la compresión:
Explica qué ha ocurrido con el fichero original:
- Comprime un fichero conservando el original con la opción
-k.
Escribe el comando utilizado:
Copia aquí la salida obtenida:
- Comprime varios ficheros a la vez con
gzipy descomprímelos congunzip.
Escribe ambos comandos utilizados:
Explica cuántos ficheros comprimidos se generaron y por qué:
- Consulta las estadísticas de compresión con
gzip -l.
Escribe el comando utilizado:
Copia aquí parte del resultado obtenido:
- Comprime y descomprime los mismos ficheros utilizando
bzip2ybunzip2.
Escribe ambos comandos utilizados:
Indica qué extensión genera este compresor y compárala con la degzip:
- Comprime varios ficheros en un único fichero con
zipy descomprímelo conunzipen otra ubicación.
Escribe el comando utilizado para comprimir:
Escribe el comando utilizado para descomprimir en otra ubicación:
Copia aquí la salida obtenida al comprobar el resultado:
- Crea, en un solo comando, un fichero tar comprimido con gzip.
Escribe el comando utilizado:
Copia aquí la salida obtenida:
Explica la ventaja de este método frente a comprimir en dos pasos separados: