El comando tar en Linux se usa a menudo para crear archivos de archivo .tar.gz o .tgz, también llamados “tarballs”. Este comando tiene una gran cantidad de opciones, pero solo necesita recordar algunas letras para crear rápidamente archivos con tar. El comando tar también puede extraer los archivos resultantes.
El comando GNU tar incluido con las distribuciones de Linux tiene compresión integrada. Puede crear un archivo .tar y luego comprimirlo con compresión gzip o bzip2 en un solo comando. Es por eso que el archivo resultante es un archivo .tar.gz o un archivo .tar.bz2.
¿De qué vamos a hablar?
Comprimir un directorio completo o un solo archivo
Utilice el siguiente comando para comprimir un directorio completo o un solo archivo en Linux. También comprimirá todos los demás directorios dentro de un directorio que especifique, en otras palabras, funciona de manera recursiva.
tar -czvf name-of-archive.tar.gz /path/to/directory-or-file
Esto es lo que realmente significan esos interruptores:
- -c: Creear un archivo.
- -z: Comprimir el archivo con gzIP.
- -v: Mostrar el progreso en el terminal mientras se crea el archivo, también conocido como “vmodo erbose”. La v siempre es opcional en estos comandos, pero es útil.
- -f: Permite especificar el filename del archivo.
Digamos que tiene un directorio llamado “stuff” en el directorio actual y desea guardarlo en un archivo llamado archive.tar.gz. Ejecutaría el siguiente comando:
tar -czvf archive.tar.gz stuff
O bien, digamos que hay un directorio en /usr/local/something en el sistema actual y desea comprimirlo en un archivo llamado archive.tar.gz. Ejecutaría el siguiente comando:
tar -czvf archive.tar.gz /usr/local/something
Comprimir varios directorios o archivos a la vez
Si bien tar se usa con frecuencia para comprimir un solo directorio, también puede usarlo para comprimir varios directorios, varios archivos individuales o ambos. Simplemente proporcione una lista de archivos o directorios en lugar de uno solo. Por ejemplo, supongamos que desea comprimir el directorio /home/ubuntu/Downloads, el directorio /usr/local/stuff y el archivo /home/ubuntu/Documents/notes.txt. Acabas de ejecutar el siguiente comando:
tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt
Simplemente enumere tantos directorios o archivos como desee respaldar.
Excluir directorios y archivos
En algunos casos, es posible que desee comprimir un directorio completo, pero no incluir ciertos archivos y directorios. Puede hacerlo añadiendo un --exclude
para cada directorio o archivo que desee excluir.
Por ejemplo, supongamos que desea comprimir /home/ubuntu, pero no desea comprimir los directorios /home/ubuntu/Downloads y /home/ubuntu/.cache. Así es como lo harías:
tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache
El --exclude
el interruptor es muy potente. No toma nombres de directorios y archivos, en realidad acepta patrones. Hay mucho más que puedes hacer con él. Por ejemplo, puede archivar un directorio completo y excluir todos los archivos .mp4 con el siguiente comando:
tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4
Utilice la compresión bzip2 en su lugar
Si bien la compresión gzip se usa con mayor frecuencia para crear archivos .tar.gz o .tgz, tar también admite la compresión bzip2. Esto le permite crear archivos comprimidos con bzip2, a menudo denominados archivos .tar.bz2, .tar.bz o .tbz. Para hacerlo, simplemente reemplace la -z para gzip en los comandos aquí con una -j para bzip2.
Gzip es más rápido, pero generalmente se comprime un poco menos, por lo que obtienes un archivo algo más grande. Bzip2 es más lento, pero se comprime un poco más, por lo que obtienes un archivo algo más pequeño. Gzip también es más común, con algunos sistemas Linux reducidos que incluyen soporte gzip por defecto, pero no soporte bzip2. En general, sin embargo, gzip y bzip2 son prácticamente la misma cosa y ambos funcionarán de manera similar.
Por ejemplo, en lugar del primer ejemplo que proporcionamos para comprimir el directorio stuff, ejecutaría el siguiente comando:
tar -cjvf archive.tar.bz2 stuff
Extraer un archivo
Una vez que tenga un archivo, puede extraerlo con el comando tar. El siguiente comando extraerá el contenido de archive.tar.gz al directorio actual.
tar -xzvf archive.tar.gz
Es el mismo que el comando de creación de archivos que usamos anteriormente, excepto el -x
El modificador reemplaza el -c
interruptor. Esto especifica que desea extract un archivo en lugar de crear uno.
Es posible que desee extraer el contenido del archivo a un directorio específico. Puede hacerlo añadiendo el -C
cambie al final del comando. Por ejemplo, el siguiente comando extraerá el contenido del archivo .tar.gz archivo en el directorio /tmp.
tar -xzvf archive.tar.gz -C /tmp
Si el archivo es un archivo comprimido con bzip2, reemplace la “z” en los comandos anteriores con una “j”.
Este es el uso más simple posible del comando tar. El comando incluye un gran número de opciones adicionales, por lo que no puedo enumerarlos todos aquí. Para más información. Ejecute el info tar en el shell para ver la página de información detallada del comando tar. Pulse el botón q para salir de la página de información cuando haya terminado. También puede lea el manual de tar en línea.
Si está utilizando un escritorio gráfico de Linux, también puede usar la utilidad de compresión de archivos o el administrador de archivos incluido con su escritorio para crear o extraer .tar archivos. En Windows, puede extraer y crear archivos .tar con el 7-Cremallera utilidad.