Cómo comprimir y descomprimir archivos usando tar en Linux

Shutterstock / iunewind

Tar es más que una simple utilidad de archivo: tar viene con algunas características integradas excelentes, que le permiten comprimir y descomprimir archivos, al mismo tiempo que los archiva. ¡Aprenda todo al respecto en este artículo y más!

No posts found.

Que es alquitrán y ¿cómo lo instalo?

Según el alquitrán manual (al que puede alcanzar escribiendo man tar una vez instalado), tar es una utilidad de archivo. Es compatible con muchas funciones, incluida la compresión y descompresión de archivos sobre la marcha al archivarlos. Comencemos instalando alquitrán:

Instalar alquitrán en su distribución de Linux basada en Debian / Apt (como Ubuntu y Mint), ejecute el venidero comando en su terminal:

sudo apt install tar

Instalar alquitrán en su distribución de Linux basada en RedHat / Yum (como RHEL, Centos y Fedora), ejecute el venidero comando en su terminal:

sudo yum install tar

A continuación, crearemos algunos datos de muestra:

mkdir test; cd test
touch a b c d e f 
echo 1 > a; echo 5 > e; echo '22222222222222222222' > b

Configurar datos de muestra para comprimir

Aquí creamos una prueba de directorio y creamos seis archivos vacíos en ella usando el touch mando. Todavía agregamos algunos números a los archivos. una, miy segundo, aunque notablemente archivo segundo tiene datos repetitivos, que se comprimirán correctamente.

Si desea obtener más información sobre cómo funciona la compresión, puede consultar nuestro artículo ¿Cómo funciona la compresión de archivos? artículo.

Creación de un archivo sin comprimir

Creación simple de archivos tar sin comprimir

tar -hcf all_files.tar *
ls -l | grep -v total | awk '{print $5"tbytes for: "$9}' | sort -n

Aquí creamos un archivo sin comprimir usando el tar -hcf all_files.tar * mando. Echemos un vistazo a las opciones utilizadas en este comando.

En primer ocasión, tenemos -h que, aunque no es necesario en este caso particular, recomiendo incluir siempre en su tar comandos. Esta opción significa desreferencia, que eliminará la remisión (o seguirá) los enlaces simbólicos, archivando y volcando los archivos a los que apuntan.

A continuación tenemos el -c y -f opciones. Tenga en cuenta que solo se escriben cercano con el - en -h, es aseverar, en ocasión de especificar otro -, simplemente los etiquetamos en las otras opciones de taquigrafía. Rapido y Facil.

los -c soporte de opción para crear un nuevo archivo. Tenga en cuenta que, de forma predeterminada, los directorios se archivan de forma recursiva, a menos que todavía se utilice la opción –no-recursión. los -f La opción nos permite especificar el nombre del archivo. Por lo tanto, tiene que ser el zaguero en nuestra dependencia de opciones (ya que requiere una opción) para que podamos juntar el nombre del archivo directamente detrás de él. Utilizando tar -fch test.tar * no trabajará:

Las opciones taquigráficas que requieren una opción no se pueden colocar al frente

Posteriormente de que se genera el alquitrán, usamos un ls salida que nos muestra claramente el número de bytes por archivo. Como puede ver, el archivo tar es mucho más ancho que todos nuestros archivos combinados. Los archivos simplemente se están archivando y algunos gastos generales para alquitrán se está agregando.

Como nota al beneficio interesante, todavía podemos ver con qué tipos de archivos estamos trabajando simplemente usando el file comando en el símbolo del sistema:

file c
file b
file all_files.tar

Usando archivo para ver el tipo de archivo

Creación de un archivo sin comprimir

Un cálculo de compresión muy global es GZIP. Agreguemos la opción para lo mismo (-z) a nuestra dependencia de opciones de itinerario de comandos abreviadas y vea cómo esto afecta el tamaño del archivo:

tar -zhcf all_files.tar.gz [a-f]
ls -l | grep -v total | awk '{print $5"tbytes for: "$9}' | sort -n

Mirando el tamaño de un archivo comprimido frente a uno sin comprimir

Esta vez especificamos una expresión regular para usar solo los archivos con nombre una a F, previniendo el tar comando de incluir el all_files.tar archivo interiormente del nuevo all_files.tar.gz ¡archivo!

Vea ¿Cómo se usa efectivamente Regex? y Modificar texto usando expresiones regulares usando sed si desea obtener más información sobre las expresiones regulares.

Todavía incluimos el -z opción que utilizará la compresión GZIP para comprimir el resultado .tar archivo una vez que se haya completado el volcado de datos. Es formidable ver que terminamos con un archivo de 186 bytes, lo que nos dice que, en este caso, el tar El encabezado / sobrecarga de aproximadamente 10 Kb se puede comprimir muy correctamente.

El tamaño total del archivo es 7,44 veces veterano que el tamaño total del archivo, pero importa poco, ya que este ejemplo ficticio no es representativo de la compresión de archivos grandes donde casi siempre se ven ganancias en ocasión de pérdidas, a menos que los datos estén precomprimidos o de un formato tal que no se pueda condensar fácilmente utilizando una variedad de algoritmos. Aún así, un cálculo (como el GZIP) puede ser mejor que otro (como por ejemplo BZIP2), y al revés, para diferentes conjuntos de datos.

Obtener más bytes con compresión de detención nivel

¿Podemos hacer que el archivo sea aún más pequeño? Si. Podemos establecer la opción de compresión máxima de GZIP usando el -I opción a tar que nos permite especificar un software de compresión para usar (gracias al agraciado de stackoverflow ideasman42):

tar -I 'gzip -9' -hcf all_files.tar.gz [a-f]
ls -l | grep -v total | awk '{print $5"tbytes for: "$9}' | sort -n

Usando la opción -I para tar para especificar un programa de compresión

Aquí especificamos -I 'gzip -9' como el software de compresión a utilizar, y eliminamos el -z opción (ya que ahora estamos especificando un software personalizado específico para usar en ocasión de usar la configuración GZIP tar incorporada). El resultado es que tenemos 12 bytes menos como resultado de un intento de compresión mejor (pero generalmente más premioso) (en el nivel -9) por GZIP.

En términos generales, cuanto más rápida sea la compresión (último nivel de intentos de compresión, es aseverar, -1), veterano tamaño de archivo. Y cuanto más lenta sea la compresión (veterano nivel de intentos de compresión, es aseverar -9), más pequeño es el archivo. Puede establecer sus propias preferencias variando el nivel de compresión de -1 (rápido) a -9 (premioso)

Otros programas de compresión

Hay otros dos algoritmos de compresión comunes que se pueden explorar y probar (diferentes opciones de algoritmos todavía dan diferentes resultados de tamaño y pueden tener opciones de compresión adicionales), y eso es bzip2, que se puede utilizar especificando el -j opción a tary XZ que se puede utilizar especificando el -J opción.

Alternativamente, puede utilizar el -I comando para establecer las opciones de compresión máximas para bzip2 (-9):

ejemplo de programa de compresión bzip -9

Y -9e para xz:

ejemplo de programa de compresión xz -9e

Como puede ver, los resultados son menos buenos en este caso que usando el cálculo GZIP poco standard. Aún así, el bzip2 y xz los algoritmos pueden mostrar mejoras con otros conjuntos de datos.

Descomprimir un archivo

Descomprimir un archivo es muy posible, sea cual sea el método llamativo para comprimirlo, y siempre que dicho cálculo de compresión esté presente en su computadora. Por ejemplo, si el cálculo de compresión llamativo era bzip2 (indicado por un .bz2 extensión al nombre del archivo tar), entonces querrá tener hecho sudo apt install bzip2 (o sudo yum install bzip2) en su computadora de destino que es descomprimir el archivo.

rm a b c d e f
tar -xf all_files.tar.gz
ls

Descomprimir un archivo tar comprimido (o sin comprimir)

Simplemente especificamos -x a expandir o descomprime nuestro all_files.tar.gz e indique cuál es el nombre del archivo utilizando de nuevo el -f opción de taquigrafía como antaño.

Comprimir archivos puede ayudarlo a evitar mucho espacio en sus dispositivos de almacenamiento y a enterarse cómo usar tar en combinación con las opciones de compresión disponibles le ayudará a hacerlo. Una vez que es necesario retornar a extraer el archivo, es posible hacerlo siempre que el software de descompresión correcto esté habitable en la computadora utilizada para descomprimir o extraer los datos de su archivo. ¡Disfrutar!

Leave a Comment