Provided by: manpages-es-extra_0.8a-17_all bug

NOMBRE

       bzip2, bunzip2 - un compresor de ficheros por ordenación de bloques, v0.9.0
       bzcat - descomprime ficheros hacia la salida estándar
       bzip2recover - recupera datos desde ficheros bzip2 dañados

SINOPSIS

       bzip2 [ -cdfkstvzVL123456789 ] [ ficheros ...  ]
       bunzip2 [ -fkvsVL ] [ ficheros ...  ]
       bzcat [ -s ] [ ficheros ...  ]
       bzip2recover fichero

DESCRIPCIÓN

       bzip2  comprime  ficheros utilizando el algoritmo de compresión de texto por ordenación de
       bloques de Burrows-Wheeler. Generalmente,  la  compresión  obtenida  es  considerablemente
       mejor  que  la  de  compresores  más convencionales basados en LZ77/LZ78, y se aproxima al
       rendimiento de la familia PPM de compresores estadísticos.

       Las opciones de la línea de comandos son deliberadamente muy similares a las de GNU  Gzip,
       pero no son idénticas.

       bzip2 espera que una lista de nombres acompañe las opciones de la línea de comandos.  Cada
       fichero  es  reemplazado   por   una   copia   comprimida   de   él   mismo,   de   nombre
       "nombre_original.bz2".   Cada  fichero  comprimido  tiene la misma fecha de modificación y
       permisos que el original correspondiente,  de  forma  que  estas  propiedades  puedan  ser
       recuperadas  correctamente  en el momento de la descompresión. El manejo de los nombres de
       los ficheros es "ingenuo" en el sentido de que no  hay  forma  de  preservar  los  nombres
       originales,  los  permisos  y  las fechas en los sistemas de ficheros que carecen de estos
       conceptos, o que tienen serias restricciones en el tamaño de los nombres, como por ejemplo
       MS-DOS.

       Por  defecto,  bzip2 y bunzip2 no sobreescribirán ficheros existentes. Si quieres que esto
       ocurra, especifica la opción -f.

       Si no se especifica el nombre  de  ningún  fichero,  bzip2  comprimirá  desde  la  entrada
       estándar  hacia  la  salida  estándar.  En este caso, bzip2 se negará a escribir la salida
       comprimida hacia una terminal, ya que ésta sería totalmente incomprensible y por lo  tanto
       inútil.

       bunzip2  (o  bzip2  -d)  descomprime y recupera todos los ficheros cuyos nombres acaben en
       ".bz2".  Los ficheros sin este sufijo son  ignorados.   Al  igual  que  antes,  si  no  se
       especifica  el  nombre  de  ningún  fichero,  la descompresión se realiza desde la entrada
       estándar hacia la salida estándar.

       bunzip2 descomprimirá correctamente un fichero que sea  la  concatenación  de  uno  o  más
       ficheros  comprimidos.  El  resultado es la concatenación de los correspondientes ficheros
       descomprimidos. Con (-t)  se  puede  comprobar  la  integridad  de  ficheros  concatenados
       comprimidos.

       También  se  pueden  comprimir  o descomprimir ficheros a la salida estándar utilizando la
       opción -c.  Múltiples ficheros pueden ser comprimidos y descomprimidos de esta forma.  Las
       salidas  resultantes  van  siendo  pasadas  secuencialmente  hacia la salida estándar.  La
       compresión de múltiples ficheros de esta manera genera un  flujo  que  contiene  múltiples
       representaciones de ficheros.  Tal flujo solo puede ser descomprimido correctamente por la
       versión 0.9.0 o superior de bzip2; versiones anteriores de bzip2 pararán tras descomprimir
       el primer fichero del flujo.

       bzcat  (o  bzip2  -dc  )  descomprime  todos  los  ficheros  especificados hacia la salida
       estándar.

       La compresión siempre se realiza, incluso aunque el  fichero  comprimido  sea  ligeramente
       mayor  que el original. Los ficheros de menos de cien bytes tienden a hacerse más grandes,
       ya que el mecanismo de compresión tiene una sobrecarga constante de unos 50  bytes.  Datos
       aleatorios (incluyendo la salida de la mayoría de compresores) son codificados a unos 8.05
       bits por byte, dando una expansión alrededor del 0.5%.

       Como autocomprobación para tu protección, bzip2 utiliza CRCs de 32 bits para asegurarse de
       que la versión descomprimida de un fichero es idéntica a la original.  Esto protege contra
       la  corrupción  de  los  datos  comprimidos,  y  contra  fallos  sin  detectar  en   bzip2
       (afortunadamente es muy poco probable).  La posibilidad de que la corrupción de datos pase
       desapercibida es microscópica, alrededor de una probabilidad  entre  cuatro  billones  por
       cada  fichero  procesado. Cuidado, sin embargo, con que la comprobación se realiza tras la
       descompresión, por lo que solo entonces se te informará de si algo está mal.  El  programa
       no  te  puede  ayudar  a  recuperar  los  datos originales descomprimidos.  Puede utilizar
       bzip2recover para intentar recuperar los datos de ficheros dañados.

VALOR DEVUELTO

       0 para finalización normal, 1 para problemas de entorno (fichero no  encontrado,  opciones
       no válidas, errores de E/S, etc...), 3 para un error interno de consistencia (ej. un bug o
       fallo) que ha provocado que bzip2 se asuste.

CONTROL DE MEMORIA

       Bzip2 comprime en bloques los ficheros grandes. El  tamaño  del  bloque  afecta  tanto  al
       porcentaje  de  compresión  conseguido,  como  a la cantidad de memoria necesitada para la
       compresión y la descompresión. Las opciones -1 a -9  especifican  que  el  tamaño  de  los
       bloques  vaya  de  100,000 bytes hasta 900,000 bytes (el utilizado) respectivamente. En el
       momento de descompresión, el tamaño de bloque utilizado para la compresión es leído de  la
       cabecera  del  fichero comprimido y entonces bunzip2 se asigna a si mismo la memoria justa
       para descomprimir el fichero. Puesto que el tamaño de los bloques  está  guardado  en  los
       ficheros  comprimidos,  se  deduce  que  las opciones -1 hasta -9 son irrelevantes para la
       descompresión y por tanto son ignoradas.  Los requerimientos para la  descompresión  y  la
       compresión, en bytes, pueden ser calculados de esta forma::

             Compresión:    400k + ( 7 x tamaño de bloque )

             Descompresión: 100k + ( 4 x tamaño de bloque ), o
                            100k + ( 2.5 x tamaño de bloque )

       Los tamaños de bloques más grandes producen rápidamente resultados marginales cada vez más
       pequeños. La mayor parte de la compresión procede de los primeros doscientos o  trecientos
       KBs  de  tamaño  de  bloque,  un  hecho  a  considerar cuando se utilice bzip2 en máquinas
       pequeñas. También  es  importante  apreciar  que  los  requerimientos  de  memoria  en  la
       descompresión vienen dados por el tamaño de bloque elegido en la compresión.

       Para  ficheros  comprimidos con el tamaño de bloque por defecto de 900k, bunzip2 requerirá
       aproximadamente  3700  kbytes  para  descomprimir.   Para  soportar  la  descompresión  de
       cualquier  fichero  en  una  máquina  de  4MB,  bunzip2 tiene una opción para descomprimir
       utilizando aproximadamente la mitad de esta cantidad de  memoria,  unos  2300  kbytes.  La
       velocidad  de  descompresión  también  se divide por dos, por lo que solo se debe utilizar
       cuando sea necesario. La opción mencionada es -s.

       En general, intenta utilizar el mayor tamaño de bloque que permita la cantidad de  memoria
       de  tu  sistema,  puesto  que  esto  maximiza  la  compresión conseguida.  La velocidad de
       compresión y descompresión no se ven prácticamente afectadas por el tamaño de bloque.

       Otro punto importante tiene que ver con los ficheros que caben en un solo  bloque  --  eso
       equivale  a  la  mayoría  de  ficheros que encontrará usando grandes tamaños de bloque. La
       cantidad de memoria utilizada es proporcional al tamaño del fichero, ya que el fichero  es
       más pequeño que un bloque. Por ejemplo, comprimir un fichero de 20.000 bytes con la opción
       -9 hará que el compresor se asigne unos 6700k de memoria, pero solo utilice 400k + 20000 *
       7  =  540 kilobytes de ella. De forma similar, el descompresor se asignará 3700k pero solo
       utilizará 100k + 20000 * 4 = 180 kbytes.

       Aquí está una tabla que resume la  utilización  máxima  de  memoria  para  los  diferentes
       tamaños  de  bloque.  También  se  recoge  el  tamaño total resultante de compresión de 14
       ficheros del "Calgary Text Compression Corpus" que sumaban 3,141,622 bytes.  Esta  columna
       da  una  idea  de como varía la compresión en función del tamaño de bloque. Estos datos no
       llegan a dar una verdadera idea de la ventaja de tamaños de bloque grandes  para  ficheros
       grandes, ya que el Corpus está dominado por ficheros pequeños.

                   Uso al     Uso al      Descomp.    Tamaño
          Opción   comprimir  descomp.    usando -s   del Corpus

            -1      1100k       500k         350k      914704
            -2      1800k       900k         600k      877703
            -3      2500k      1300k         850k      860338
            -4      3200k      1700k        1100k      846899
            -5      3900k      2100k        1350k      845160
            -6      4600k      2500k        1600k      838626
            -7      5400k      2900k        1850k      834096
            -8      6000k      3300k        2100k      828642
            -9      6700k      3700k        2350k      828642

OPCIONES

       -c --stdout
              Comprime  o  descomprime  hacia  la  salida  estándar.  -c  descomprimirá múltiples
              ficheros hacia la salida estándar, pero solo comprimirá un solo  fichero  hacia  la
              salida estándar.

       -d --decompress
              Fuerza la descompresión.  bzip2, bunzip2 y bzcat son en realidad el mismo programa,
              y la decisión sobre la acción a realizar se toma  en  función  del  nombre  que  se
              utilice. Esta opción ignora este mecanismo y hace que bzip2 descomprima.

       -z --compress
              El complementario a -d: fuerza la compresión, independientemente del nombre con que
              se invoque.

       -t --test
              Comprueba la integridad del fichero(s) especificado, pero no  lo  descomprime.   En
              realidad se realiza una descompresión de prueba y se lanza el resultado.

       -f --force
              Fuerza   la  sobrescritura  de  los  ficheros  de  salida.  Normalmente,  bzip2  no
              sobreescribe ficheros ya existentes.

       -k --keep
              Mantener  (no  borrar)  los  ficheros  de  entrada  durante  la  compresión  o   la
              descompresión.

       -s --small
              Reduce  la  utilización  de  memoria  para  la  compresión,  la  descompresión y la
              comprobación.   Los  ficheros  son  descomprimidos  y  comprobados  utilizando   un
              algoritmo  modificado  que  solo  requiere 2.5 bytes por cada byte del bloque. Esto
              significa que cualquier fichero puede ser descomprimido en 2300k de memoria, aunque
              a la mitad de la velocidad normal.

              Durante  la compresión, -s selecciona un tamaño de bloque de 200k, lo que limita el
              uso de memoria a aproximadamente el mismo número,  a  expensas  del  porcentaje  de
              compresión.  En pocas palabras, si su máquina no tiene mucha memoria (8 megabytes o
              menos), utilice -s para todo. Vea CONTROL DE MEMORIA arriba.

       -v --verbose
              Modo extenso (muestra el porcentaje de compresión para cada fichero procesado).  El
              uso de más opciones -v incrementa el nivel de extensión, arrojando gran cantidad de
              información principalmente de interés para usos de diagnóstico.

       -L --license -V --version
              Muestra la versión del programa, los términos de la licencia y sus condiciones.

       -1 a -9
              Pone el tamaño de bloque a 100 k, 200 k .. 900 k en la compresión. No afecta  a  la
              descompresión. Vea CONTROL DE MEMORIA arriba.

       --repetitive-fast
              bzip2  introduce  algunas  variaciones pseudoaleatorias en bloques muy repetitivos,
              para limitar los casos de peor funcionamiento  al  comprimir.  Si  el  ordenamiento
              encuentra  dificultades,  el bloque es aleatorizado, y el ordenamiento se reinicia.
              En pocas palabras, bzip2 lo intenta por  tres  veces  antes  de  pasar  a  utilizar
              aleatorización.  Esta opción hace que lo deje de intentar mucho antes.

       --repetitive-best
              Lo  contrario  de  --repetitive-fast.  Lo  intenta  mucho  más  antes de pasar a la
              aleatorización.

RESCATANDO DATOS DESDE FICHEROS DAÑADOS

       bzip2 comprime los ficheros en bloques, normalmente de 900kbytes. Cada bloque se maneja de
       manera  independiente.  Si  un  error  de  transmisión o del medio (físico) provoca que un
       fichero .bz2 multibloque sea dañado, puede que sea posible  recuperar  los  datos  de  los
       bloques intactos que queden en el fichero.

       La  representación  comprimida de cada bloque está delimitada por un patrón de 48 bits, lo
       que hace posible el encontrar los límites de los bloques con cierta certeza.  Cada  bloque
       contiene  su  propio CRC de 32 bit, por lo que los bloques dañados puedes ser distinguidos
       de los intactos.

       bzip2recover es un simple programa cuyo único propósito  es  la  búsqueda  de  bloques  en
       ficheros  .bz2,  para  su  posterior  escritura  en su propio fichero .bz2. Entonces puede
       utilizar bzip2 -t para comprobar la integridad de los ficheros resultantes y  descomprimir
       aquellos que estén intactos.

       bzip2recover  toma  un  solo  argumento,  el nombre del fichero dañado, y crea un grupo de
       ficheros  "rec0001fichero.bz2",  "rec0002fichero.bz2",  etc,   conteniendo   los   bloques
       extraídos.  Los nombres de salida están diseñados de forma que la utilización de comodines
       en un procesado posterior (por ejemplo, "bzip2 -dc rec*file.bz2 >  recovered_data")  liste
       los ficheros en el orden "correcto".

       bzip2recover  será  de  mayor  provecho  cuando  trate ficheros .bz2 grandes, ya que estos
       contendrán muchos bloques. Es inútil utilizarlo en ficheros de un solo bloque dañados,  ya
       que el bloque dañado no podrá ser recuperado. Si desea minimizar cualquier posible perdida
       de datos debida a un error del medio físico o  de  la  transmisión,  puede  considerar  la
       utilización de tamaños de bloque menores en la compresión.

NOTAS SOBRE El FUNCIONAMIENTO DEL PROGRAMA

       La fase de ordenación del programa recoge y junta todas las cadenas similares del fichero.
       Debido a esto, los ficheros que contienen  series  muy  largas  de  símbolos,  tales  como
       "aabaabaabaab  ..."  (repetida  varios  cientos  de veces) puede que se compriman de forma
       extraordinariamente lenta. Puede utilizar la opción -vvvv para monitorizar en  detalle  el
       progreso, si así lo desea.  La velocidad de descompresión no se ve afectada.

       Estos  casos  patológicos son raros en la práctica, apareciendo principalmente en ficheros
       de prueba construidos artificialmente, y en  imágenes  a  bajo  nivel  de  discos.  No  es
       recomendable  utilizar bzip2 para comprimir estas últimas. Si obtiene un fichero que causa
       una pronunciada lentitud al comprimir, intente utilizar un tamaño de  bloque  tan  pequeño
       como sea posible, con la opción -1.

       Normalmente bzip2 reserva varios megabytes de memoria para operar en ellos, y entonces los
       utiliza de una manera  bastante  aleatoria.  Esto  significa  que  el  funcionamiento  del
       programa, tanto para comprimir como para descomprimir, se ve en gran parte determinado por
       la velocidad a la que su máquina sea capaz de servir fallos de caché. Debido a esto, se ha
       observado  que  pequeños  cambios en el código para reducir la tasa de fallos proporcionan
       una mejora desproporcionadamente grande en el funcionamiento  del  programa.  Supongo  que
       bzip2 funcionará mejor en máquinas con caches de gran tamaño.

ADVERTENCIAS

       Los  mensajes  de  error  de  E/S  no son tan útiles como podrían.  Bzip2 intenta detectar
       errores de E/S y salir limpiamente, pero los detalles sobre la causa del problema a  veces
       pueden ser engañosos.

       Esta  página  del  manual  pertenece  a  la versión 0.9.0 de bzip2.  Los datos comprimidos
       creados por esta versión son totalmente compatibles en un sentido u otro con  la  anterior
       versión  pública del programa, la 0.1pl2, pero con la siguiente excepción: Solo la versión
       0.9.0 puede descomprimir correctamente múltiples ficheros concatenados. La 0.1pl2 no puede
       hacer esto; parará justo después de descomprimir el primer fichero en el flujo de datos.

       La expansión de comodines bajo Windows 95 y NT no es perfecta.

       bzip2recover  utiliza  enteros  de  32 bits para representar las posiciones de los bits en
       ficheros comprimidos, por lo que no puede manejar  ficheros  comprimidos  de  más  de  512
       megabytes. Esto podría ser fácilmente solucionado.

AUTOR

       Julian Seward, jseward@acm.org.

       http://www.muraroa.demon.co.uk

       Las  ideas  incluidas en bzip2 se deben (al menos) a la siguiente gente: Michael Burrows y
       David Wheeler (por la transformación por ordenación de bloques), David Wheeler (otra  vez,
       por  el codificador de Huffman), Peter Fenwick (por el modelo de programación estructurada
       del bzip, original, y por muchos refinamientos), y Alistair Moffat,  Radford  Neal  y  Ian
       Witten (por el codificador aritmético del bzip original).  Estoy en deuda con ellos por su
       ayuda, su apoyo y sus consejos.  Vea el  manual  en  la  distribución  sin  compilar  para
       encontrar  apuntes  sobre  donde hallar fuentes de documentación.  Christian von Roques me
       animó a buscar algoritmos de ordenación más rápidos, para acelerar  la  compresión.   Bela
       Lubkin me alentó para que mejorara el funcionamiento de la compresión en los casos peores.
       Mucha gente envío parches, ayudó con los problemas de portabilidad, prestó  máquinas,  dio
       consejo y fue de ayuda en general.

                                                                                         bzip2(1)