es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Selección del algoritmo de compresión para un dispositivo de memoria limitada: ¿qué funciona sin requerir estar completamente en la memoria?

Estoy escribiendo una aplicación que, en un dispositivo de baja memoria, necesita poder leer la lista de archivos contenidos y también extraer archivos específicos (pero aleatorios) de un tarball (o algún tipo de archivo comprimido).

Aquí está mi pregunta: ¿se puede “transmitir” un tarball bz2 mientras se descomprime (donde “transmitir” significa que puedo leer la lista de archivos o extraer un archivo aleatorio sin leer todo el tarball en la memoria)?

¿Y qué pasa con un tarball gz?

¿Hay algún formato que sea mejor o peor para esto?

Realmente he intentado encontrar esta información en línea, pero estoy teniendo problemas.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en Linux, compresión, gzip, tar y bzip2, puedo responder a tus preguntas de la siguiente manera:

    1. ¿Se puede “emitir en streaming” una bola de tar bz2 mientras se descomprime?

    Sí, es posible emitir en streaming una bola de tar bz2 mientras se descomprime utilizando los comandos ‘tar’ y ‘bzip2’ en Linux. Puedes usar la opción ‘-j’ con el comando ‘tar’ para especificar que el archivo de entrada es un archivo comprimido bz2. Luego, puedes usar la opción ‘-O’ con el comando ‘bzip2’ para descomprimir el archivo en la salida estándar (stdout) en lugar de escribirlo en un archivo. Esto te permitirá leer la lista de archivos o extraer un archivo aleatorio sin leer toda la bola de tar en la memoria.

    Por ejemplo, para listar el contenido de una bola de tar bz2 sin descomprimir el archivo completo, puedes usar el siguiente comando:

    tar -tzjf <archivo.tar.bz2>
    

    Para extraer un archivo específico de la bola de tar sin descomprimir el archivo completo, puedes usar el siguiente comando:

    tar -xjf <archivo.tar.bz2> <ruta al/archivo="">
    
    1. ¿Se puede “emitir en streaming” una bola de tar gz mientras se descomprime?

    Sí, también es posible emitir en streaming una bola de tar gz mientras se descomprime utilizando los comandos ‘tar’ y ‘gzip’ en Linux. Puedes usar la opción ‘-z’ con el comando ‘tar’ para especificar que el archivo de entrada es un archivo comprimido gz. Luego, puedes usar la opción ‘-d’ con el comando ‘gzip’ para descomprimir el archivo en stdout. Esto te permitirá leer la lista de archivos o extraer un archivo aleatorio sin leer toda la bola de tar en la memoria.

    Por ejemplo, para listar el contenido de una bola de tar gz sin descomprimir el archivo completo, puedes usar el siguiente comando:

    tar -tzf <archivo.tar.gz>
    

    Para extraer un archivo específico de la bola de tar sin descomprimir el archivo completo, puedes usar el siguiente comando:

    tar -xzf <archivo.tar.gz> <ruta al/archivo="">
    
    1. ¿Hay formatos que sean mejores o peores para esto?

    En general, tanto las bolas de tar bz2 como las bolas de tar gz se pueden emitir en streaming mientras se descomprimen, por lo que ninguno de los formatos es necesariamente mejor o peor para este caso de uso específico. Sin embargo, la relación de compresión y la velocidad pueden variar entre los formatos, por lo que es posible que desees tener en cuenta estos factores al elegir un formato de compresión. Por ejemplo, bz2 generalmente ofrece mejores relaciones de compresión a costa de una compresión y descompresión más lentas en comparación con gz. Sin embargo, gz puede ser una buena opción si priorizas la velocidad sobre la relación de compresión. En última instancia, el mejor formato dependerá de tus requisitos y limitaciones específicas.</archivo.tar.gz></archivo.tar.gz></archivo.tar.bz2></archivo.tar.bz2>

Comments are closed.