Cómo descomprimir un archivo tar.gz
Si usa software de código abierto, es probable que encuentre un archivo .tar en algún momento. La utilidad de archivo tar de código abierto existe desde 1979 , por lo que es verdaderamente omnipresente en el mundo POSIX. Su propósito es simple: toma uno o más archivos y los «envuelve» en un archivo autónomo, llamado archivo de cinta porque cuando se inventó tar se usaba para colocar datos en cintas de almacenamiento.
Las personas nuevas en el formato tar generalmente lo equiparan a un archivo .zip, pero un archivo tar no está comprimido. El formato tar solo crea un contenedor para archivos, pero los archivos se pueden comprimir con utilidades independientes. Las compresiones comunes aplicadas a un archivo .tar son Gzip, bzip2 y xz. Por eso, rara vez ve solo un archivo .tar y es más común encontrar archivos .tar.gz o .tgz.
Instalar tar
En Linux, BSD, Illumos e incluso Mac OS, el comando tar ya está instalado.
En Windows, la forma más fácil de manejar archivos .tar es a insta Llene la utilidad 7-Zip de código abierto LGPL. Su nombre implica que es una utilidad zip, pero también funciona con archivos tar, e incluso proporciona comandos para la interfaz de línea de comandos cmd.
Si realmente desea una utilidad tar real en Windows, GNU tar es instalable a través de WSL en Windows 10 o Cygwin.
Creación de un tarball
Un archivo tar a menudo se denomina tarball, presumiblemente porque a los piratas informáticos nos encanta acortar las palabras a unas pocas sílabas como sea posible, y «tarball» es más corto y más fácil que «tar archive».
En una GUI, crear un tarball es, como mucho, un proceso de tres pasos. Estoy usando KDE, pero el proceso es esencialmente el mismo en Gnome o XFCE:
- Cree un directorio
- Coloque sus archivos en el directorio
- Haga clic derecho en el directorio y seleccione «Comprimir»
compress.jpg
Crear un tarball
En un shell, es básicamente lo mismo proceso.
Para reunir un gr Un grupo de archivos en un solo archivo, coloque sus archivos en un directorio y luego invoque tar, proporcionando un nombre para el archivo que desea crear y el directorio que desea archivar:
La utilidad tar es única entre los comandos, porque no requiere guiones delante de sus opciones cortas, lo que permite a los usuarios avanzados abreviar comandos complejos como este:
No es necesario que coloque los archivos en un directorio antes de archivarlos, pero se considera de mala educación no hacerlo, porque nadie quiere 50 archivos esparcidos en su escritorio cuando desarchivan un directorio. Este tipo de archivos a veces se denominan tarbomb, aunque no siempre con una connotación negativa. Las Tarbombs son útiles para parches e instaladores de software; es sólo una cuestión de saber cuándo usarlos y cuándo evitarlos.
Comprimir archivos
Crear un archivo tar no comprime sus archivos, solo los hace más fáciles de moverse como un blob. Para la compresión, puede hacer que tar llame a Gzip o bzip:
$ tar --create --bzip2 --file foo.tar.bz2 myfiles
$ tar --create --gzip --file foo.tar.gz myfiles
Las extensiones comunes son tar.gz y .tgz para un tar con Gzip y .tbz y .tar.bz2 para un archivo tar comprimido en bzip.
Extraer archivos
Si ha recibido un tarball de un amigo o de un proyecto de software, puede extraer en su escritorio GUI o en un shell. En una GUI, haga clic con el botón derecho en el archivo que desea extraer y seleccione «Extraer».
extract_0.jpg
Extrayendo un archivo
El administrador de archivos Dolphin ofrece una función para detectar automáticamente si los archivos extraídos de un archivo están contenidos en un directorio o si es necesario crear un nuevo directorio para ellos. Utilizo esta opción para que cuando extraigo archivos de un tarbomb, permanezcan ordenados y contenidos.
En un shell, el comando para extraer un archivo es bastante intuitivo:
Los usuarios avanzados acortan esto a:
Incluso puede usar la utilidad tar para descomprimir archivos .zip:
Tar avanzado
Las utilidades tar son muy robustas y flexibles. Una vez que se sienta cómodo con los conceptos básicos, es útil explorar otras funciones.
Agregar un archivo o directorio a un tarball existente
Si tiene un tarball existente y desea agregue un nuevo archivo en él, no tiene que desarchivar todo solo para agregar un nuevo archivo.
La mayoría de los escritorios Linux y BSD vienen con una utilidad de archivo gráfico. Usándola, puede abrir un archivo tar como si fuera cualquier otro directorio, mire dentro, extraiga archivos individuales, agréguele archivos e incluso obtenga una vista previa de los archivos de texto e imágenes que contiene.
ark.jpg
La utilidad de archivo Ark
En el shell, puede agregar un archivo o directorio a un archivo tar siempre que no esté comprimido. Si su archivo ha sido comprimido, debe descomprimirlo, pero no necesita desarchivarlo.
Por ejemplo, si un archivo ha sido comprimido con Gzip:
$ gunzip archive.tar.gz
$ ls
archive.tar
Ahora que tiene un archivo tar sin comprimir, agregue un archivo y un directorio:
$ tar --append --file archive.tar foo.txt
$ tar --append --file archive.tar bar/
La versión más corta:
$ tar rf archive.tar foo.txt
$ tar rf archive.tar bar/
Ver una lista de archivos dentro de un tarball
Para ver los archivos en un archivo, comprimido o sin comprimir, use el – opción de lista:
$ tar --list --file archive.tar.gz
myfiles/
myfiles/one
myfiles/two
myfiles/three
bar/
bar/four
foo.txt
Los usuarios avanzados reducen esto a:
Extrae solo uno archivo o directorio
A veces no necesita todos los archivos en un archivo, solo desea extraer uno o dos. Después de enumerar el contenido de un archivo tar, use el comando de extracción tar habitual junto con el ruta del archivo que desea extraer:
$ tar xvf archive.tar.gz bar/four
bar/four
Extraer varios archivos o directorios es básicamente lo mismo:
$ tar xvf archive.tar.gz myfiles/one bar/four
myfiles/one
bar/four
Incluso puedes usar comodines:
$ tar xvf archive.tar.gz --wildcards "*.txt"
foo.txt
Extraer un tarball a otro directorio
Anteriormente, mencioné que algunos tarballs eran tarbombs que dejaron archivos esparcidos por su computadora. Si enumera un archivo tar y ve que sus archivos no están contenidos en un directorio, puede crear un directorio de destino para ellos:
$ tar --list --file archive.tar.gz
foo
bar
baz
$ mkdir newfiles
$ tar xvf archive.tar.gz -C newfiles
Esto coloca todos los los archivos del archivo en el directorio «newfiles».
La opción del directorio de destino es útil para mucho más que simplemente mantener ordenados los archivos extraídos, por ejemplo, distribuir archivos que están destinados a ser copiados en un estructura de directorio existente. Si está trabajando en un sitio web y desea enviarle al administrador algunos archivos nuevos, puede hacerlo de diferentes formas. La forma obvia es enviar los archivos por correo electrónico al administrador del sitio junto con un texto que explique dónde debe estar cada archivo. colocado: «El archivo index.php adjunto va a /var/www/example.com/store, y el archivo vouchers.php va a /var/www/example.com/deals …»
La forma más eficiente sería crear un archivo tar:
Dada esta estructura, el administrador del sitio podría extraer su archivo entrante directamente al directorio raíz del servidor. La utilidad tar detecta automáticamente la existencia de /var/www/example.com, así como los subdirectorios almacenan, ofertas e imágenes, y distribuye los archivos en los directorios adecuados. Es copiar y pegar masivamente, hecho rápido y fácil.
GNU tar y BSD tar
El formato tar es solo un formato, y es un formato abierto, por lo que se puede crear con más de una herramienta.
Hay dos utilidades tar comunes: la utilidad tar GNU, instalada por defecto en sistemas Linux, y la utilidad tar BSD, instalada por defecto en BSD, Mac OS y algunos sistemas Linux. Para uso general, cualquiera de los dos alquitrán servirá. Todos los ejemplos de este artículo funcionan igual en GNU o BSD tar, por ejemplo. Sin embargo, las dos utilidades tienen algunas diferencias menores, así que una vez que te sientas cómodo con una, deberías probar la otra.
Probablemente tendrás que instalar el «otro» tar (lo que sea que esté en su sistema) manualmente. Para evitar confusiones entre las utilidades, GNU tar a menudo se llama gtar y BSD tar se llama bsdtar, siendo el comando tar un enlace simbólico, o un alias, al que venía preinstalado en su computadora.