GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo archivar y comprimir archivos en Linux

Como administrador del sistema, es posible que haya descargado algunos archivos que necesita extraer para revelar sus archivos.

También puede hacer una copia de seguridad de una base de datos completa hecho de una amplia variedad de archivos pequeños que desea agregar en un solo archivo.

Archivado y comprimir archivos son operaciones comunes en el mundo Unix, realizadas por los administradores del sistema con mucha regularidad.

Afortunadamente para ti, Linux expone un conjunto de diferentes comandos para archivar, comprimir, descomprimir y extraer archivos de un archivo.

En este tutorial, aprenderá más sobre el comando tar y los diferentes métodos de compresión que se pueden usar para ahorrar espacio en Linux.

¿Listo?

Archivar archivos en Linux usando tar

Alquitrán es un comando muy popular entre los administradores de sistemas.

A veces denominado tarball , tar se usó históricamente para escribir datos en dispositivos que no tenían sistemas de archivos en ese momento.

Como consecuencia, el comando tar se introdujo en 1979. para reemplazar el “tp ” programa que se usaba en ese entonces.

Hoy en día, el comando tar se usa ampliamente para archivar archivos (lo que significa juntar archivos en un solo archivo).

Para archivar archivos en Linux usando tar, ejecute “tar ” con el “cvf ” opciones.

$ tar -cvf archive.tar file1 file2 directory1 directory2

file1/
file2/
directory1/
directory2/

En este caso, utilizamos tres opciones diferentes:

  • -c :para crear archivo, una opción que se explica por sí misma si desea crear un nuevo archivo a partir de los archivos seleccionados;
  • -v :para verbose, esta es la razón por la cual el comando muestra los archivos agregados al archivo cuando se ejecuta;
  • -f :para archivo, esta opción se usa para especificar el nombre del archivo que queremos crear (en este caso archive.tar)

Esas opciones son probablemente las opciones más importantes para archivar archivos en Linux.

Al ejecutar el comando tar con el indicador "-f", se creó un nuevo archivo en su directorio de trabajo actual.

$ ls -l
total 20
-rw-rw-r-- 1 schkn schkn 10240 Nov  9 10:41 archive.tar
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory1
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory2
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file1
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file2

Como puede ver, el tamaño del archivo es mayor que la suma de los archivos que contiene.

¿Por qué?

Crear un archivo tar no es simplemente colocar archivos y directorios en una caja grande:un archivo también es un archivo especial hecho de encabezados de archivos especiales que pueden ocupar una cantidad considerable de espacio.

Como consecuencia, su archivo es mucho más grande que la suma de los archivos que contiene.

Este es un hecho muy importante porque podemos entender que archivar archivos no significa que sus archivos estén comprimidos en él.

Para comprimir archivos al archivarlos, debe proporcionar otras opciones al comando tar.

La compresión de archivos se explicará en los próximos capítulos.

Extrae archivos usando tar en Linux

Ahora que ha creado un archivo de almacenamiento, es posible que desee extraer los archivos ubicados en su archivo.

Para extraer archivos con el comando tar, agregue "-x ” en lugar de la opción “-c” inicial.

$ tar -xvf archive.tar

file1
file2
directory1/
directory2/

Tenga en cuenta que extraer sus archivos no significa que el archivo se eliminará de su directorio de trabajo actual.

$ ls -l

total 28
-rw-rw-r-- 1 schkn schkn 10240 Nov  9 12:01 archive.tar
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory1
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory2
-rw-rw-r-- 1 schkn schkn     0 Nov  9 12:00 file1
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file2

Al extraer archivos en Linux, hay un pequeño problema que debe tener en cuenta.

Si un archivo en el directorio de trabajo actual tiene el mismo nombre que un archivo dentro del archivo, el contenido del archivo en el directorio de trabajo será reemplazado por el del archivo.

Para ilustrarlo, agregue algo de contenido a uno de sus archivos, extraiga sus archivos y vuelva a inspeccionar el contenido de su archivo nuevamente.

$ echo "Added some content to the file" > file1

$ tar -xvf archive.tar

$ cat file1
<empty>

Comparar archivos locales con archivos de almacenamiento

Para evitar que los datos se borren durante el proceso, el comando tar puede comparar archivos ubicado en su directorio de trabajo actual con archivos en su archivo.

Volviendo al ejemplo que discutimos anteriormente, agreguemos algo de contenido al archivo "file1".

$ echo "Added some content to the file" > file1

Para comparar archivos con tar, utilice la opción "-d".

$ tar -dvf archive.tar

file1
file1: Mod time differs
file1: Size differs
file2
directory1/
directory2/

Como puede ver, tar comparará marcas de tiempo y más concretamente la fecha de última modificación del fichero.

Si la fecha de modificación del archivo local es más reciente que la del archivo histórico, el comando tar mostrará un aviso que indica que la hora de modificación es diferente.

De manera similar, tar puede inspeccionar los tamaños de los archivos y resaltar las diferencias de tamaño entre sus archivos.

Para evitar borrar sus archivos, puede utilizar la estrella comando que es una gran alternativa al comando tar existente.

Evitar la sobrescritura de archivos usando estrella

De forma predeterminada, es posible que la utilidad estrella no esté instalada en su sistema.

Para instalar la utilidad estrella, ejecute la utilidad YUM

$ sudo yum install star

Luego, para archivar archivos con estrella, simplemente ejecute "estrella" con la opción "-c".

$ star -c -f=archive.tar file1 file2

Luego, puede usar la utilidad gzip o gunzip para comprimir su nuevo archivo.

$ gzip archive.tar

Como consecuencia, el archivo tar inicial se transformará en un archivo tar.gz.

Ahora bien, si tuviera que crear un archivo con exactamente el mismo nombre, la utilidad estrella no lo sobrescribiría de forma predeterminada.

$ echo "This is some content" > file1

$ gzip -d archive.tar.gz

$ star -x -f=archive.tar
star: current 'file1' newer.
star: current 'file2' newer.
star: 1 blocks + 0 bytes (total of 10240 bytes = 10.00k).

$ cat file1
This is some content

¡Muy útil cuando tienes miedo de perder tu contenido!

Comprimir archivos usando gzip en Linux

Ahora que tiene listo su archivo tar, el siguiente paso es comprimirlo para reducir su tamaño.

Para eso, primero vamos a usar el gzip utilidad.

De forma predeterminada, la utilidad gzip debe estar instalada, pero si no es así, asegúrese de instalarla según su distribución.

$ sudo apt-get install gzip

$ sudo yum install gzip

Ahora que gzip está instalado, ejecute "gzip" y pase el archivo que acaba de crear como argumento.

$ gzip archive.tar

Ejecutar el comando gzip creará un tar.gz archivo en el directorio de trabajo actual.

Lo que es más importante, el archivo tar inicial se actualizará a tar.gz para que ya no tenga el archivo inicial.

$ ls -l
total 12
-rw-rw-r-- 1 schkn schkn  184 Nov  9 10:41 archive.tar.gz
drwxrwxr-x 2 schkn schkn 4096 Nov  9 10:41 directory1
drwxrwxr-x 2 schkn schkn 4096 Nov  9 10:41 directory2
-rw-rw-r-- 1 schkn schkn    0 Nov  9 10:41 file1
-rw-rw-r-- 1 schkn schkn    0 Nov  9 10:41 file2

Como puede ver, el tamaño del archivo se redujo drásticamente de 10 Kb a 184 bytes, gzip redujo el tamaño del archivo en más del 98 %.

Sin embargo, si no desea utilizar la utilidad gzip, también puede comprimir archivos con el comando tar con opciones.

¿Crees que puede mejorar la tasa de compresión?

Comprimir archivos en Linux usando tar

Como se mencionó en la primera sección, el comando tar se puede usar para archivar y comprimir archivos en una sola línea.

Para comprimir archivos con tar, simplemente agregue “-z” opción a su conjunto actual de opciones.

$ tar -cvzf archive1.tar.gz file1 file2 directory1 directory2

De manera similar al primer comando tar que ejecutó, se creará un nuevo archivo comprimido en su directorio de trabajo actual.

Para inspeccionar los archivos creados, simplemente ejecute el comando "ls" nuevamente.

$ ls -l
total 28
-rw-rw-r-- 1 schkn schkn   184 Nov  9 10:41 archive.tar.gz
-rw-rw-r-- 1 schkn schkn   172 Nov  9 11:10 archive1.tar.gz
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory1
drwxrwxr-x 2 schkn schkn  4096 Nov  9 10:41 directory2
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file1
-rw-rw-r-- 1 schkn schkn     0 Nov  9 10:41 file2

Ahora, como puede ver, el archivo comprimido creado es ligeramente más ligero que el creado con gzip.

Comprimir archivos usando bzip2

La mayoría de las veces, el comando gzip se utiliza para comprimir archivos o archivos.

Sin embargo, este no es históricamente el único método de compresión disponible en ingeniería de software:también puede usar bzip2.

La principal diferencia entre gzip y bzip2 es que gzip usa el algoritmo de compresión LZ77 mientras que bzip2 usa el algoritmo Burrows-Wheeler .

Se sabe que Bzip2 es bastante más lento que el algoritmo gzip, sin embargo, puede ser útil en algunos casos saber cómo comprimir usando bzip2.

Para comprimir archivos usando bzip2, simplemente ejecute "bzip2" con el nombre de archivo que desea comprimir.

$ bzip2 archive.tar

Para descomprimir archivos comprimidos con bzip2, simplemente agregue la opción "-d" a su comando.

$ bzip -d archive.tar.bz2

Alternativamente, puede crear archivos bz2 usando el comando tar y especificando la opción "-j".

$ tar -cjf archive.tar.gz2 file1 file2

Usando tar, tiene la opción de comprimir usando un amplio panel de diferentes métodos de compresión:

  • -j :comprimir un archivo usando el método de compresión bz2;
  • -J :usa la utilidad de compresión xz;
  • –lzip :usa la utilidad de compresión lzip;
  • –lzma :usa la utilidad de compresión lzma;
  • –lzop :usa lzop para comprimir archivos
  • -z :equivalente a la utilidad gzip o gunzip.

Conclusión

En este tutorial, aprendió cómo puede archivar y comprimir archivos usando la utilidad tar en Linux.

También aprendió sobre los diferentes métodos de compresión disponibles y cómo se pueden usar para reducir el tamaño de sus archivos y directorios.

Si tiene curiosidad acerca de la administración del sistema Linux, tenemos una sección completa dedicada a ella en el sitio web, así que asegúrese de echarle un vistazo.


Linux
  1. 16 comandos Tar para comprimir y extraer archivos en Linux

  2. Cómo archivar archivos y directorios en Linux [Parte 2]

  3. Cómo archivar archivos y directorios en Linux [Parte 1]

  4. Cómo comprimir y descomprimir archivos en Linux

  5. Cómo extraer archivos .gz y .tar.gz en Linux

Cómo comprimir archivos y directorios en Linux

Cómo copiar archivos y directorios en Linux

Pigz – Comprime y descomprime archivos en paralelo en Linux

Cómo instalar Rclone en Linux y Unix

Comando tar de Linux:cómo comprimir archivos en Linux

Cómo instalar y usar Pigz para comprimir archivos más rápido en Linux