Tar en Linux: Guía Completa de Tar CVF y Tar XVF con Ejemplos
El comando tar
en Linux es una herramienta versátil que permite crear archivos de archivo, conocidos como archivos .tar
, para compactar, almacenar y restaurar conjuntos de archivos y directorios. Su nombre, proveniente de «Tape Archive», refleja su origen en la época de las cintas magnéticas, donde se utilizaba para archivar datos. A pesar de su antigüedad, tar
sigue siendo un comando esencial en Linux y se utiliza ampliamente para la administración de archivos, la creación de copias de seguridad y la transferencia de datos.
Este artículo se centra en dos de los comandos tar
más comunes: tar cvf
y tar xvf
. Exploraremos en detalle cómo utilizar estos comandos para crear archivos .tar
, extraer su contenido y comprender las opciones adicionales disponibles para comprimir archivos, dividirlos en partes más pequeñas y transferir archivos de forma remota.
Creando Archivos Tar con Tar CVF
El comando tar cvf
es la base para la creación de archivos .tar
.
Comprender las Opciones:
- c: Indica a
tar
que cree un nuevo archivo de archivo. - v: Activa el modo verboso, mostrando los archivos que se están procesando.
- f: Especifica el nombre del archivo
.tar
que se creará.
Ejemplo Básico:
tar cvf archivo.tar directorio/
Este comando creará un archivo llamado archivo.tar
que contendrá todos los archivos y subdirectorios dentro del directorio directorio/
. La opción v
mostrará en la terminal los archivos que se están agregando al archivo .tar
.
Opciones Adicionales:
- –exclude: Excluye archivos específicos del archivo
.tar
. - –transform: Permite modificar los nombres de archivo antes de incluirlos en el archivo
.tar
. - –owner: Establece el propietario del archivo
.tar
. - –group: Establece el grupo del archivo
.tar
. - –mode: Establece los permisos del archivo
.tar
.
Ejemplo con Opciones:
tar cvf archivo.tar --exclude="*.log" --owner=root --group=admin directorio/
Este comando creará un archivo archivo.tar
que incluirá todos los archivos y subdirectorios del directorio directorio/
excepto aquellos con la extensión .log
. El propietario del archivo .tar
será root
y el grupo será admin
.
Comprimiendo Archivos Tar con Tar Z
Para comprimir un archivo .tar
utilizando la compresión gzip, se añade la opción z
al comando tar
.
Ejemplo:
tar czvf archivo.tar.gz directorio/
Este comando creará un archivo archivo.tar.gz
que contendrá los archivos del directorio directorio/
comprimidos con gzip.
Opciones de Compresión:
- z: Utiliza gzip para la compresión.
- j: Utiliza bzip2 para la compresión.
- J: Utiliza xz para la compresión.
Ejemplo con Compresión Bzip2:
tar cjf archivo.tar.bz2 directorio/
Este comando creará un archivo archivo.tar.bz2
que contendrá los archivos del directorio directorio/
comprimidos con bzip2.
Extrayendo Archivos Tar con Tar XVF
El comando tar xvf
se utiliza para extraer el contenido de un archivo .tar
.
Comprender las Opciones:
- x: Indica a
tar
que extraiga el contenido del archivo.tar
. - v: Activa el modo verboso, mostrando los archivos que se están extrayendo.
- f: Especifica el nombre del archivo
.tar
que se va a extraer.
Ejemplo Básico:
tar xvf archivo.tar
Este comando extraerá todos los archivos y directorios del archivo archivo.tar
en el directorio actual. La opción v
mostrará en la terminal los archivos que se están extrayendo.
Opciones Adicionales:
- –directory: Especifica el directorio donde se extraerán los archivos.
- –strip-components: Elimina los componentes del nombre de archivo durante la extracción.
- –wildcards: Permite utilizar comodines para extraer archivos específicos.
Ejemplo con Opciones:
tar xvf archivo.tar --directory=destino/
Este comando extraerá todos los archivos y directorios del archivo archivo.tar
al directorio destino/
.
Dividiendo Archivos Tar con Split
El comando split
se utiliza para dividir un archivo .tar
en partes más pequeñas. Esto puede ser útil cuando se trabaja con archivos .tar
grandes que necesitan ser transferidos a través de una red o almacenados en medios de almacenamiento con límites de tamaño de archivo.
Ejemplo:
split -b 1024m archivo.tar archivo.tar.
Este comando dividirá el archivo archivo.tar
en partes de 1024 MB cada una, nombrando los archivos resultantes como archivo.tar.aa
, archivo.tar.ab
, etc.
Uniendo Archivos Tar con Cat
Para volver a unir las partes de un archivo .tar
dividido, se utiliza el comando cat
.
Ejemplo:
cat archivo.tar.* > archivo.tar
Este comando concatenará todas las partes del archivo archivo.tar
(es decir, archivo.tar.aa
, archivo.tar.ab
, etc.) y creará un nuevo archivo archivo.tar
.
Transferencia de Archivos Tar con SSH
El comando tar
se puede combinar con ssh
para transferir archivos de forma remota. Esto permite crear una imagen de un sistema de archivos en un servidor local y enviarla a un servidor remoto.
Ejemplo:
tar cvf - directorio/ | ssh usuario@servidor 'tar xvf - -C /ruta/destino/'
Este comando crea un archivo .tar
del directorio directorio/
, lo comprime con gzip y lo envía al servidor servidor
como usuario usuario
. El comando tar xvf - -C /ruta/destino/
en el servidor remoto extrae el archivo .tar
en el directorio /ruta/destino/
.
Creando Imágenes del Sistema de Archivos
tar
se puede utilizar para crear una imagen de un sistema de archivos completo. Esto puede ser útil para la creación de copias de seguridad o para la restauración de un sistema de archivos.
Ejemplo:
tar cvf - / | ssh usuario@servidor 'tar xvf - -C /mnt/punto_montaje/'
Este comando crea una imagen del sistema de archivos raíz (/
), la comprime con gzip y la envía al servidor servidor
como usuario usuario
. El comando tar xvf - -C /mnt/punto_montaje/
en el servidor remoto extrae la imagen en el punto de montaje /mnt/punto_montaje/
.
Conclusión
El comando tar
es una herramienta esencial para la administración de archivos en Linux. Ofrece una amplia gama de opciones para crear, comprimir, extraer y transferir archivos de forma eficiente. Al dominar el uso de tar cvf
y tar xvf
, junto con las opciones de compresión, división y transferencia, los usuarios de Linux pueden aprovechar al máximo las capacidades de este comando versátil.