How to Compress and Extract Files in Linux Using tar and gzip Commands

La compresión de archivos es un medio eficaz para transferir archivos entre distintos ordenadores y servidores. Los administradores de Linux realizan habitualmente tareas como archivar, comprimir y extraer archivos. Un archivo es un único archivo que incluye varios archivos o directorios. Si ha encontrado archivos tar con las extensiones .tar, .tar.gz, .xz o .bz2, es probable que procedan de la utilidad .tar.

Estos archivos comprimen el espacio en disco de las unidades locales y facilitan las descargas por Internet. Una vez descargado el archivo, los usuarios pueden utilizar herramientas de descompresión para extraer los archivos en sus sistemas. Las distribuciones de Linux ofrecen diversas utilidades de línea de comandos, en particular las que utilizan el comando tar gzip para comprimir o extraer de forma eficiente archivos de gran tamaño.

Esta guía muestra la funcionalidad de los comandos tar y gzip para archivar, comprimir y extraer archivos en sistemas Linux. Aquí utilizaremos la distribución Linux Ubuntu 22.04 para implementar y ejecutar todos los comandos.

¿Qué es tar?

tar significa «archivo de cinta» y es una utilidad de compresión de archivos de línea de comandos muy utilizada. Se utiliza para comprimir y extraer archivos.

Los archivos comprimidos contienen más de un archivo y directorios, y se identifican con extensiones como .tar, .tar.gz, .xz o .bz2, conocidos como tarballs. En Linux, los desarrolladores pueden distribuir el código fuente y los archivos importantes a través de archivos tar gz. Además, también se pueden comprimir y descomprimir archivos en diferentes formatos utilizando las utilidades tar gzip y bzip2.

¿Qué es gzip?

gzip es una herramienta de compresión sin pérdida de datos para Linux que se utiliza para comprimir y descomprimir archivos simultáneamente. Es compatible con interfaces gráficas y de línea de comandos, lo que le confiere una gran versatilidad.

Las características principales de la utilidad gzip incluyen la compresión simultánea de varios archivos, la ejecución basada en terminal, la utilización de los algoritmos LZ77 y Lempel-Ziv-Welch, el acortamiento de nombres de archivo largos y la generación automática de extensiones de archivo .gz. En general, gzip demuestra ser una solución de compresión robusta y fácil de usar, diseñada para entornos Linux.

tar y gzip (herramientas de compresión de archivos)

La diferencia básica entre las dos herramientas radica en sus funciones principales:

La utilidad tar se encarga de crear archivos a partir de varios archivos, mientras que gzip está diseñada para comprimir archivos individuales. A pesar de esta diferencia, las herramientas se pueden utilizar juntas. Con tar, puede realizar la tarea de gzip para comprimir los archivos que archiva. Al utilizar el modificador «z» con el comando tar, gzip se integra en el proceso tar, lo que permite crear archivos comprimidos sin problemas.

Cómo comprimir un archivo o directorio con el comando tar

La sintaxis básica para comprimir un archivo con tar es:

$ tar -czvf <nombre del archivo comprimido tar> </ruta de destino de los archivos/o/directorio>

Por ejemplo, supongamos que tiene un archivo/directorio llamado «/home/samreena» en el directorio actual. Para comprimir este directorio en un archivo llamado testfile.tar.gz, ejecutará el siguiente comando:

$ tar -czvf testfile.tar.gz /home/samreena

En el comando anterior, tar es una utilidad de línea de comandos para comprimir un archivo o directorio. A continuación, se utilizan los indicadores o conmutadores «-czvf» para representar lo siguiente:

-c: Crea un archivo comprimido tar o un archivo de archivo

-z: Comprime el archivo utilizando gzip

-v: Muestra el «verbose», esta opción mostrará los detalles del progreso en la ventana de la terminal durante la creación del archivo.

-f: Este parámetro le permite asignar un nombre al archivo comprimido.

Para verificarlo, utilice el comando «ls» para listar todos los archivos y directorios del directorio actual:

Cómo comprimir varios archivos o directorios en un archivo

Para comprimir varios archivos o directorios en un solo archivo, navega hasta el directorio donde se encuentran todos los archivos o subdirectorios utilizando el comando «cd». Utiliza el comando tar con los indicadores adecuados, como «tar czvf», para crear un archivo comprimido. Por ejemplo, para comprimir archivos en un archivo comprimido con gzip, puedes utilizar el siguiente comando:

$ tar -czvf <nombre_archivo.tar.gz> <archivo1 archivo2 archivo3 …>

Por ejemplo, si tiene tres archivos llamados «index.html», «testfile.tar.gz» y «testfolder2» en el directorio Documentos actual y desea comprimirlos en un archivo llamado «test_archive.tar.gz», debe ejecutar el siguiente comando:

$ tar -czf archivo_archivo.tar.gz index.html archivo_tar.gz carpeta_test2

Esto creará un archivo comprimido llamado archivo_archivo.tar.gz que contiene los archivos especificados.

Cómo excluir archivos o directorios durante el archivado de archivos

Al archivar un directorio, es habitual que se deban omitir ciertos archivos del archivo. En este caso, puede utilizar la opción --exclude. De esta forma, puede identificar los archivos que se deben excluir del archivo creado. Los archivos que coincidan con los patrones especificados en la opción --exclude se omitirán automáticamente del archivo tar. Para excluir archivos del archivo, utilice el siguiente comando:

$ tar --exclude=“*.html” -czvf test_archive.tar.gz /home/samreena

Cómo extraer archivos o directorios de un archivo utilizando el comando tar

Para extraer archivos utilizando el comando tar en Linux, es esencial tener en cuenta que tar, una herramienta predeterminada en la mayoría de las distribuciones de Linux, admite varios formatos de compresión como bzip2, gzip, lzip, lzop, lzma, xz y compress. Al crear un archivo tar, es recomendable incluir el sufijo adecuado en el nombre del archivo para indicar el formato de compresión. Por ejemplo, supongamos que tienes un archivo tar comprimido con gzip y que el archivo se llama «test_archive.tar.gz». Para extraer un archivo tar comprimido, puedes utilizar la siguiente sintaxis:

$ tar -xf test_archive.tar.gz

Si deseas enumerar todos los nombres de los archivos durante el proceso de extracción, utiliza la opción «-v»:

$ tar -xvf test_archive.tar.gz

Es importante tener en cuenta que este comando extrae el contenido del archivo tar en el directorio de trabajo actual de forma predeterminada.

Cómo extraer un archivo en un directorio específico

Para extraer un archivo tar en un directorio diferente al directorio actual, utilice la opción «-C» y especifique la ruta del directorio.

Supongamos que desea extraer el contenido del archivo en «home/samreena». En ese caso, especifique la ruta del directorio y el nombre del archivo con el siguiente comando:

$ tar -xvf test_archive.tar.gz -C /home/samreena

Cómo extraer un archivo o directorio específico de un archivo

A veces, es necesario extraer archivos o directorios específicos de un archivo tar en lugar de extraer todo el contenido. Para ello, se puede utilizar una lista de nombres de archivos o directorios separados por espacios después del nombre del archivo en el comando.

Por ejemplo, supongamos que desea extraer «index.html» y «testfolder2» del archivo tar. En ese caso, se puede ejecutar el siguiente comando en el terminal:

$ tar -xf test_archive.tar,gz index.html testfolder2

En situaciones en las que se intenta extraer un archivo que no está presente en el archivo, el comando proporciona información mostrando un mensaje de error «No encontrado en el archivo»:

$ tar -xf test_archive.tar.gz README

Opciones del comando tar:

x: Se utiliza para extraer el archivo tar o archivos específicos de un archivo.

v: Muestra información detallada o nombres de archivos durante el procesamiento de un archivo.

f: Indica a tar los archivos sobre los que debe operar.

t: Muestra una lista de los nombres de los archivos incluidos en un archivo.

Conclusión

En este tutorial, hemos mostrado cómo comprimir o extraer archivos utilizando las herramientas tar y gzip en Linux. Ambas herramientas son útiles para comprimir y descomprimir archivos y directorios en su sistema. Si utiliza un servidor VPS Linux, puede comprimir y extraer archivos de forma eficiente con la ayuda de estas utilidades. No dude en preguntar si tiene alguna pregunta.

Blog