RAR (Roshal ARchive) es un formato de archivo propietario, con un algoritmo de compresión sin pérdida utilizado para la compresión de datos y archivación, desarrollado por el ingeniero de software ruso, Eugene Roshal. En GNU/Linux es posible extraer archivos comprimidos RAR utilizando la herramienta unrar.
El formato RAR es más lento que el ZIP, pero posee una mayor tasa de compresión. Otra característica de RAR es que posee una mejor redundancia de datos que ZIP. Además, este formato permite lo que se conoce como compresión sólida que permite comprimir varios ficheros juntos, de forma que un mismo diccionario se aplica a toda la información, con lo que el nivel de compresión es mayor.
La herramienta unrar permite ver, extraer y verificar archivos RAR y viene en el paquete del mismo nombre. Para CentOS el paquete unrar se incluye en el repositorio rpmforge.
Ejemplos de uso:
Listar el contenido de un archivo RAR:
$ unrar l example.rar UNRAR 3.92 freeware Copyright (c) 1993-2010 Alexander Roshal Archive example.rar Name Size Packed Ratio Date Time Attr CRC Meth Ver ------------------------------------------------------------------------------- example 0 0 0% 28-03-07 10:53 .D..... 00000000 m0 2.0 BackPhoto.hx 2402 815 33% 16-03-07 02:21 .....A. 6072BB12 m3c 2.9 compile.hxml 52 52 100% 27-03-07 22:26 .....A. 28F0F374 m0c 2.9 DS_Note.ttf 107200 21930 20% 04-06-00 20:20 .....A. BB5F8A15 m3c 2.9 Gallery.hx 1709 690 40% 28-03-07 10:52 .....A. 7E6584F0 m3c 2.9 images 0 0 0% 28-03-07 10:50 .D..... 00000000 m0 2.0 01.jpg 173541 160597 92% 22-06-05 21:36 .....A. F1EA192C m3c 2.9 02.jpg 8373 8361 99% 28-03-07 10:48 .....A. 610577D7 m3c 2.9 03.jpg 17796 16775 94% 28-03-07 10:48 .....A. 5BB13439 m3c 2.9 04.jpg 11419 11412 99% 28-03-07 10:48 .....A. AD634D50 m3c 2.9 05.jpg 15956 15951 99% 28-03-07 10:49 .....A. C0A00FCE m3c 2.9 library.xml 674 403 59% 27-03-07 22:25 .....A. B5687D06 m3c 2.9 Main.hx 154 130 84% 27-03-07 22:26 .....A. BA13818D m3c 2.9 Photo.hx 3414 1070 31% 16-03-07 03:45 .....A. 30306AC2 m3c 2.9 ------------------------------------------------------------------------------- 14 342690 238186 69%
Imprimir en pantalla el contenido de un archivo contenido en el RAR, por ejemplo mostrar el contenido del archivo example/Main.hx
contenido dentro del RAR example.rar
:
$ unrar p example.rar example/Main.hx UNRAR 3.92 freeware Copyright (c) 1993-2010 Alexander Roshal Extracting from example.rar ------ Printing example/Main.hx 99% class Main { static function main():Void { var gal = new Gallery(flash.Lib.current); gal.draw(); } } All OK
Extraer el archivo RAR en el directorio actual:
$ unrar e example.rar UNRAR 3.92 freeware Copyright (c) 1993-2010 Alexander Roshal Extracting from example.rar Extracting BackPhoto.hx OK Extracting compile.hxml OK Extracting DS_Note.ttf OK Extracting Gallery.hx OK Extracting 01.jpg OK Extracting 02.jpg OK Extracting 03.jpg OK Extracting 04.jpg OK Extracting 05.jpg OK Extracting library.xml OK Extracting Main.hx OK Extracting Photo.hx OK All OK
De esta forma (utilizando el comando e
) se extraen todos los archivos en el directorio actual, sin respetar la estructura de directorios dentro del RAR:
$ ll total 604 -rw-rw-r-- 1 pepe pepe 173541 Jun 22 2005 01.jpg -rw-rw-r-- 1 pepe pepe 8373 Mar 28 2007 02.jpg -rw-rw-r-- 1 pepe pepe 17796 Mar 28 2007 03.jpg -rw-rw-r-- 1 pepe pepe 11419 Mar 28 2007 04.jpg -rw-rw-r-- 1 pepe pepe 15956 Mar 28 2007 05.jpg -rw-rw-r-- 1 pepe pepe 2402 Mar 16 2007 BackPhoto.hx -rw-rw-r-- 1 pepe pepe 52 Mar 27 2007 compile.hxml -rw-rw-r-- 1 pepe pepe 107200 Jun 4 2000 DS_Note.ttf -rwxrwxrwx 1 pepe pepe 238974 Oct 26 12:56 example.rar -rw-rw-r-- 1 pepe pepe 1709 Mar 28 2007 Gallery.hx -rw-rw-r-- 1 pepe pepe 674 Mar 27 2007 library.xml -rw-rw-r-- 1 pepe pepe 154 Mar 27 2007 Main.hx -rw-rw-r-- 1 pepe pepe 3414 Mar 16 2007 Photo.hx
Para extraer el RAR respetando la estructura de directorios se debe utilizar el comando x
:
$ unrar x example.rar UNRAR 3.92 freeware Copyright (c) 1993-2010 Alexander Roshal Extracting from example.rar Creating example OK Extracting example/BackPhoto.hx OK Extracting example/compile.hxml OK Extracting example/DS_Note.ttf OK Extracting example/Gallery.hx OK Creating example/images OK Extracting example/images/01.jpg OK Extracting example/images/02.jpg OK Extracting example/images/03.jpg OK Extracting example/images/04.jpg OK Extracting example/images/05.jpg OK Extracting example/library.xml OK Extracting example/Main.hx OK Extracting example/Photo.hx OK All OK
El resultado es el siguiente:
$ ll total 244 drwxrwxr-x 3 pepe pepe 4096 Oct 26 13:12 example -rwxrwxrwx 1 pepe pepe 238974 Oct 26 12:56 example.rar
$ ll example total 136 -rw-rw-r-- 1 pepe pepe 2402 Mar 16 2007 BackPhoto.hx -rw-rw-r-- 1 pepe pepe 52 Mar 27 2007 compile.hxml -rw-rw-r-- 1 pepe pepe 107200 Jun 4 2000 DS_Note.ttf -rw-rw-r-- 1 pepe pepe 1709 Mar 28 2007 Gallery.hx drwxrwxr-x 2 pepe pepe 4096 Oct 26 13:12 images -rw-rw-r-- 1 pepe pepe 674 Mar 27 2007 library.xml -rw-rw-r-- 1 pepe pepe 154 Mar 27 2007 Main.hx -rw-rw-r-- 1 pepe pepe 3414 Mar 16 2007 Photo.hx