Al igual que find, tar es un utilitario UNIX® de larga data, y como tal, su sintaxis es un poco especial. La sintaxis es:
tar [opciones] [archivos ...]
Aquí tiene una lista de algunas opciones. Note que todas tienen una opción larga equivalente, pero para esto deberá consultar la página Man tar(1), ya que no se indicarán aquí.
![]() | Nota |
---|---|
El guión inicial
( |
x
: Esta opción
se usa para extraer los archivos de un archivador
existente.
v
:
mostrar más mensajes. Lista los archivos mientras se agregan o
se extraen de un archivador. Si se usa junto con la opción
t
(ver arriba), imprime un listado largo de
archivo en lugar de uno corto.
f
<nombre_de_archivo>
: Crear un archivador de
nombre nombre_de_archivo
, extraer del
archivador nombre_de_archivo
o listar los
archivos del archivador nombre_de_archivo
.
Si se omite este parámetro, el archivo predeterminado será
/dev/rmt0
, que generalmente es el archivo
especial asociado con el streamer. Si el parámetro
nombre_de_archivo
es -
(un guión, la entrada o la salida — dependiendo
de si está creando un archivador o extrayendo de uno) será
asociado con la entrada estándar o la salida estándar.
z
: Le dice a
tar que el archivador a crear debe
comprimirse con gzip, o que el archivador del
que se quiere extraer está comprimido con
gzip.
j
: Igual que
z
, pero el programa usado para la compresión es
bzip2.
p
: Cuando se extraen
archivos de un archivador, preservar todos los atributos del
archivo, incluyendo pertenencia, último tiempo de acceso, y así
sucesivamente. Muy útil para los volcados del sistema de
archivos.
r
:
Agregar la lista de archivos dada en la línea de comandos a un
archivador existente. Note que el archivador al cual quiere
agregar archivos ¡no debe estar
comprimido!
A
:
Añadir los archivadores que se dan en la línea de comandos al
que se da con la opción f
. Al igual que con la
opción r
, los archivadores no deben estar
comprimidos para que esto funcione.
Hay muchas, muchas,
muchas otras opciones, para una lista completa querrá consultar la
página Man tar(1). Vea, por
ejemplo, la opción d
.
Sigamos con un ejemplo. Digamos
que quiere crear un archivador con todas las imágenes en
/shared/images
, comprimido con bzip2,
denominado images.tar.bz2
y ubicado en su
directorio personal. Entonces, ingresará:
# # Nota: ¡debe encontrarse en el directorio desde el # que quiere archivar los archivos! # $ cd /shared $ tar cjf ~/images.tar.bz2 images/
Como puede ver, aquí hemos usado tres
opciones: c
le dijo a tar que queríamos
crear un archivador, j
le dijo que lo queríamos
comprimir con bzip2, y f ~/images.tar.bz2
le dijo que el archivador se iba a crear en nuestro directorio
personal, con el nombre images.tar.bz2
. Ahora
queremos verificar si el archivador es válido. Simplemente lo
podemos hacer listando sus archivos:
# Volver a nuestro directorio personal # $ cd $ tar tjvf images.tar.bz2
Aquí, le dijimos a tar que liste
(t
) los archivos del archivador
images.tar.bz2
(f
images.tar.bz2
), le advertimos que el archivador estaba
comprimido con bzip2 (j
), y que queríamos
un listado largo (v
). Ahora, digamos que borró el
directorio de las imágenes. Afortunadamente, su archivador está
intacto, y ahora lo quiere extraer de nuevo a su lugar original,
en /shared
. Pero como no quiere arruinar su
comando find para las imágenes nuevas, necesita conservar
todos los atributos del archivo:
# # cambiar al directorio donde quiere extraer # $ cd /shared $ tar jxpf ~/images.tar.bz2
Ahora, digamos que quiere extraer sólo el
directorio images/cars
del archivador, y nada
más. Entonces puede ingresar esto:
$ tar jxf ~/images.tar.bz2 images/cars
Si esto le preocupa, que no lo haga. Si
intenta respaldar archivos especiales, tar los tomará como
lo que son, archivos especiales, y no volcará su contenido.
Entonces, sí, se puede poner /dev/mem
en un
archivador ¡Ah!, y también trata correctamente a los
vínculos, así que tampoco se preocupe por esto. Para los vínculos
simbólicos, también mire la opción h
en la página
Man.
Ya hemos hablado de estos dos programas cuando tratábamos con tar. A diferencia de WinZip® bajo Windows®, el archivador y la compresión se hacen usando dos utilitarios separados – tar para el archivador, y los dos programas que presentaremos ahora para la compresión de datos: bzip2 y gzip. También puede utilizar otros utilitarios de compresión, los programas como zip, arj o rar también existen para GNU/Linux (pero no se usan con frecuencia).
Al principio, bzip2 fue escrito como un reemplazo de gzip. Sus relaciones de compresión generalmente son mejores, pero por otra parte, necesita más memoria RAM mientras está trabajando. Sin embargo, gzip todavía se usa para mantener la compatibilidad con los sistemas más antiguos.
Ambos comandos tienen una sintaxis similar:
gzip [opciones] [archivo(s)]
Si no se especifica un nombre de archivo, tanto gzip como bzip2 esperarán datos de la entrada estándar y enviarán los resultados a la salida estándar. Por lo tanto, puede usar ambos programas en tuberías. También ambos programas tienen un conjunto de opciones en común:
-1
, ...,
-9
: Configuran la relación de compresión. A
mayor número, mejor compresión, pero mejor también significa más
lenta: “dar para recibir”.
-d
: Descomprimir
el(los) archivo(s). Esto es equivalente a usar gunzip o
bunzip2.
-c
: Volcar el
resultado de la compresión/descompresión de los archivos pasados
como parámetros a la salida estándar.
Ahora, algunos ejemplos.
Digamos que quiere comprimir todos los archivos que terminan con
.txt
en el directorio corriente usando
bzip2 con compresión máxima. Entonces ingresará:
$ bzip2 -9 *.txt
. Ahora quiere compartir su archivado de imágenes con alguien, pero dicha persona no tiene bzip2, sólo tiene gzip. No necesita descomprimir el archivador y volver a comprimirlo, simplemente puede descomprimirlo a la salida estándar, usar una tubería, comprimir desde la entrada estándar y volver a direccionar la salida al archivador nuevo. De la manera siguiente:
bzip2 -dc imagenes.tar.bz2 | gzip -9 >imagenes.tar.gz
Y eso es todo. Podría haber ingresado bzcat en lugar de bzip2 -dc. Hay un equivalente para gzip pero su nombre es zcat, no gzcat. También tiene bzless (y zless, respectivamente) si quiere ver un archivo comprimido directamente, sin tener que descomprimirlo. Como ejercicio, intente encontrar el comando que tendría que ingresar para ver los archivos comprimidos sin descomprimirlos, y sin usar bzless o zless.