You are on page 1of 5

Actividad 19: Utilidades II. Comandos de compresin y descompresin de ficheros.

Introduccin -----------Para poder instalar y actualizar programas en un sistema Unix y derivados, hay que familiarizarse con las herramientas de compresin y agrupacin de archivos. Algunas, como 'tar' proceden de los primeros das. Mientras que otras, como 'gzip', son relativamente modernas. El propsito de estas herramientas es empaquetar una serie de ficheros en un nico archivo y comprimir este. Al comprimir el archivo, el tamao del mismo se reduce, ganando espacio de disco. Lo normal es distribuir los programas en un solo archivo de formato 'tar' y comprimido con 'gzip'. Para poder recuperar los datos originales debe conocerse las herramientas con que se hizo el empaquetado. Adems de la distribucin, estas utilidades sirven para crear copias de seguridad de datos. Compresor gzip y descompresor gunzip -----------------------------------Los programas 'gzip' y 'gunzip' son el compresor y descompresor desarrollados en el proyecto GNU. La funcin de 'gzip' consiste en tomar un fichero, comprimir sus datos, grabarlos en formato .gz y luego sustituir el fichero original con el comprimido. Esta sustitucin se lleva a cabo si el archivo .gz se crea sin problemas. As evita perder los datos si la compresin no tiene xito. Es posible modificar bastante el comportamiento del programa con las opciones de lnea de comandos. Suponer que hay un fichero llamado documento1.txt: #ls -l documento1.txt -rw-r--r-1 root root # _ 842 Oct 31 21:25 documento1.txt

Para comprimirlo con gzip escribir: #gzip documentos1.txt Esto sustituye el fichero documento1.txt con el archivo documento1.txt.gz: #ls -l documento1* -rw-r--r-1 root root # _ 37 Oct 31 21:27 documento1.txt.gz

Si se le pasa al compresor una lista de nombres, este los comprime creando un archivo para cada uno de ellos, cuyo nombre es el original ms .gz. Observar que cada fichero original se comprime dando lugar a un archivo comprimido. Otros programas de tipo 'zip', especialmente para MS-DOS y algunos Unix, comprimen varios ficheros en un solo archivo. Es posible "ver" el contenido de un fichero de texto comprimido con 'gzip' utilizando una versin adaptada del comando 'cat' orientada a ficheros .gz, esta utilidad se llama 'zcat'. Por ejemplo: #echo hola > hola.txt #cat hola.txt hola

#ls -l hola.txt -rw-r--r-1 root #

root 5 Oct 31 23:08 hola.txt

Si ahora es comprimido el fichero hola.txt se obtendr hola.txt.gz: #gzip hola.txt Y para visualizar la informacin original se usar 'zcat': #zcat hola.txt.gz hola # _ El grado de compresin del fichero depende de su formato y contenido. Por ejemplo, muchos ficheros grficos ya estn comprimidos (como los GIF y JPEG), de manera que 'gzip' tiene muy poco efecto sobre ellos. Los ficheros con mayor tasa de compresin son los de texto plano y los binarios ejecutables y de biblioteca. Para recuperar el fichero original a partir del comprimido usar 'gunzip' o tambin 'gzip -d'. #gunzip documento1.txt.gz #ls -l dococumento1* -rw-r--r-1 root root # _ Empaquetado de archivos ----------------------El programa 'tar' sirve para agrupar varios ficheros en unos solo, que ser denominado genricamente archivo (por archivar ficheros). El nombre significa archivo de cinta (Tape ARchive) ya que su uso original era hacer copias de respaldo de los ficheros sobre cintas magnticas. Hoy en da el empleo de 'tar' no est restringido a las unidades de cinta. El formato del comando es: #tar funcin_y_opciones_de_tar ficheros Donde: - funcin: Es una nica letra que indica la operacin a realizar. En microLINUX son: - c: crear. - x: extraer. - t: listar. - opciones: Es una lista de letras que indican diversos modificadores de funcin. en microLINUX son: - f: Nombre del fichero .tar (por defecto utiliza la entrada estndar). - O: Extrae a la salida estndar. - exclude: Fichero a excluir. - X: Fichero con nombre de archivo a excluir. - C: Cambia al directorio indicado antes de operar. - v: Muestra la lista de ficheros procesados.

842 Oct 31 21:36 documento1.txt

Para empaquetar todos los ficheros que comienzan con "sc_" puede llamarse al comando 'tar' de la siguiente forma: #tar cvf todos_sc.tar sc_* sc_for1 sc_for2 sc_for3 sc_if1 ... # _ Una vez creado el archivo .tar ya es posible distribuirlo. Para extraer los ficheros, el comando es: #tar xvf todos_sc.tar sc_for1 sc_for2 sc_for3 sc_if1 ... # _ Si el que desempaqueta el archivo es el superusuario (root) entonces el propietario de los ficheros ser el original. El comando 'tar' mantiene la ruta de cada fichero empaquetado relativa a la posicin del archivo.tar cuando se cre. La extraccin se hace relativa al directorio de trabajo actual. Antes de desempaquetar un archivo es recomendable echar un vistazo al contenido, para saber si se han incluido los directorios, o por el contrario hay que crearlos primero para evitar problemas en el desempaquetado. Visualizarel contenido del archivo .tar con: #tar tvf archivo.tar ... # _ En este momento no se ha realizado ninguna extraccin, solo muestra el contenido. En el proceso de extraccin, si el usuario no especifica ningn fichero son desempaquetados todos. Aunque es posible seleccionar el/los fichero/os a extraer individualmente. Para ello escribir el nombre completo incluida la ruta de acceso. Por ejemplo desempaquetar el fichero "sc_for2" almacenado en todos_sc.tar: #tar xvf todos_sc.tar sc_for2 sc_for2 # _ Uso conjunto de tar y gzip -------------------------Los archivos .tar no estn comprimidos, son una manera de agrupar diversos ficheros en uno solo, pero sin comprimirlos. Lo habitual es combinar 'tar' y 'gzip' para obtener, de varios ficheros, uno solo comprimido.

Una manera de hacer eficiente el manejo de los comandos de empaquetado y compresin consiste en utilizar la capacidad de concatenacin del intrprete de comandos, de esta forma la compresin de un grupo de ficheros en un nico archivo sera: #tar cvf - ficheros | gzip - > nombre_de_archivo.tar.gz fich1 fich2 ... fichn # _ nota: el guin indica a las aplicaciones que la salida de cada comando es la salida estndar. Y para extraer los ficheros hay que hacer lo propio: #gunzip -c nombre_de_archivo.tar.gz | tar xvf fich1 fich2 ... fichn # _ T A R E A S ----------1 Crea el siguiente subrbol de directorios y ficheros desde tu directorio hogar (como usuario normal): ../Agenda/lunes/programa_L.txt /martes/programa_M.txt /mircoles/programa_X.txt /jueves/programa_J.txt /viernes/programa_V.txt /fin_de_semana/programa_S.txt /programa_D.txt Donde en cada fichero programa_?.txt debe aparecer el siguiente texto: Programacin da de la semana: El_da_que_corresponda hora 08:00 - 10:00 hora 10:00 - 15:00 hora 15:00 - 20:00 hora 20:00 - 23:00 Recordar:

2 Comprobar las utilidades de compresin (gzip), visualizacin (zcat) y descompresin (gunzip) con el fichero "../Agenda/lunes/programa_L.txt". Hacer una copia del fichero .gz llamada "copia_agenda.txt.gz". 3 Como usuario root descomprime el fichero "copia_agenda.txt.gz" y comprueba si mantienen tanto el propietario como el grupo originales. 4 Empaquetar todo el subrbol en el fichero "agenda_semana.tar". 5 copiar el fichero anterior a un directorio diferente. 6 Listar el contenido del fichero .tar.

7 Extraer el fichero "/Agenda/jueves/programa_J.txt". 8 Extraer todo el contenido del fichero .tar manejado en el apartado 6 y verificar si la estructura del subrbol sigue intacta. 9 Agrupar y comprimir todo el subrbol en un solo paso. 10 Realizar el proceso inverso al punto anterior tambin en un solo paso. <->

You might also like