En mi empresa, descargamos una instantánea de la base de datos de desarrollo local como un db.dump.tar.gz
archivo. La compresión tiene sentido, pero el tarball solo contiene un único archivo ( db.dump
).
¿Tiene algún sentido archivar un solo archivo, o es .tar.gz
un idioma tan común? ¿Por qué no solo .gz
?
tar
compression
archive
cabeza de jardín
fuente
fuente
tar -zxvf
. Pero para aquellos que miran el nombre del archivo y ven que no tiene una.tgz
extensión, está perfectamente bien descomprimir el archivo de volcado db. Dado que no conozco los algoritmos de compresión en detalle, no estoy seguro de si tar hace alguna compresión en archivos dispersos como db dump, pero para archivos de texto sin formato, el gzip directo del archivo tiene una ventaja de tamaño muy pequeño sobre el taring primero y gzip ing el archivo.tar.gz
que era superior a la mayoría de los otros métodos comunes. Recuerdo que era superior a solo.tar
pero no puedo recordar si fue mejor que solo.gz
. Irónicamente, el.cab
formato de Windows fue el mejor de los métodos que probé, lo cual fue muy inesperado.tar
no es un algoritmo de compresión, es un formato de archivoRespuestas:
Las ventajas de usar en
.tar.gz
lugar de.gz
son quetar
almacena más metadatos (permisos UNIX, etc.) quegzip
.La sobrecarga de uso
tar
también es muy pequeña.Si realmente no es necesario, todavía no recomiendo tar un solo archivo. Hay muchas herramientas útiles que pueden acceder directamente a archivos individuales comprimidos (como
zcat
,zgrep
etc., que también existen parabzip2
yxz
).fuente
.gz
, mi primer instinto es hacerlotar -zxf foo.gz
. Recordar que gzip es incluso un comando lleva unos segundos más.z
(o-
para el caso), la mayoría de los modernostar
detectarán automáticamente que el archivo debe descomprimirse.gzip
almacenará el nombre del archivo original y la marca de tiempo. Puede usar la-N
opción al descomprimir para restaurarlos.En realidad solo hace la mitad de la pregunta. La otra pregunta es, "¿Por qué comprimiría un archivo tar con gzip?". Y la respuesta no es solo que
gzip
hace que el archivo sea más pequeño (en la mayoría de los casos):tar
:gzip
:Con solo
tar
usted no puede estar seguro de que sus datos no están dañados. Con sologzip
usted no puede restaurar la identificación de usuario / grupo, el tiempo de modificación y posiblemente no el nombre de archivo original.La combinación es más poderosa que la que proporcionan los comandos / formatos individuales, porque complementan las características de cada uno .
fuente
tar
página de Wikipedia, entendí mal la descripción que significaba que la suma de comprobación era para todo el archivo.Hay una bastante grande ventaja de utilizar archivos de texto en formato gz-única - el contenido se puede acceder directamente con herramientas de línea de comandos como
less
,zgrep
,zcat
.fuente
Diría que es probable que las personas simplemente no se den cuenta de que pueden usar gzip / bzip2 / xz sin tar. Posiblemente porque provienen de un fondo de DOS / Windows donde es normal que la compresión y el archivo se integren en un solo formato ( ZIP , RAR , etc.).
Si bien puede haber ligeras ventajas al usar tar en algunas situaciones debido al almacenamiento de metadatos o la capacidad de agregar archivos adicionales, también hay desventajas. Con un archivo gzip / bzip2 / xz simple, puede descomprimirlo y canalizar los datos descomprimidos directamente a otra herramienta (como su base de datos) sin tener que almacenar los datos descomprimidos como un archivo en el disco. Con un tarball esto es más difícil.
fuente
tgz
extensión. Sin embargo, el caso del OP utilizatar.gz
, y si estos hipotéticos ex usuarios de Win / DOS son algo como yo, lo primero que dicen al mirar dicho archivo es: '¿Por qué tiene 2 extensiones?'. Luego lo buscan en Google y obtienen rápidamente la respuesta, lo que explica específicamente que latar
compresión es distinta. ;-)Hay una diferencia importante que podría hacer que el uso sea
tar
importante en algunas circunstancias: además de los "metadatos" que @jofel mencionó en su respuesta,tar
registra el nombre del archivo en el archivo. Cuando lo extrae, obtiene el nombre de archivo original independientemente de cómo se llame el archivo.En su caso, el archivo tar y el archivo que contiene tienen los nombres relacionados
db.dump.tar.gz
ydb.tar
, pero suponga que cambia el nombre del archivo tar a20-Apr-16.dump.tgz
, o lo que sea. Untar esto contar xvfz
, y lo tienesdb.dump
. Para comparar, descomprimir20-Apr-16.dump.gz
y ya tienes20-Apr-16.dump
. (Editar: como se señala en los comentarios, gzip también registra el nombre del archivo; pero normalmente no se usa al descomprimir). Untar
archivo también puede contener un nombre de ruta relativo que coloca el archivo extraído en un subdirectorio.Su caso de uso determinará si este tipo de persistencia de nombre de archivo es necesaria, o incluso deseada , o realmente no es deseable. Pero ciertamente, independientemente de la compresión, un
tar
archivo viaja de manera diferente a un archivo normal.fuente
gzip --name
explícitamente al descomprimir), pero no tiene que usar tar para obtener la persistencia del nombre de archivo.Además de todas las otras respuestas, recientemente me encontré con una situación de secuencias de comandos en la que solo se esperaba un archivo, pero un empleado anterior escribió las secuencias de comandos con la posibilidad de generar más de un archivo. Por lo tanto, los archivos fueron alquilados y comprimidos, luego transferidos y expandidos.
Cuando el proceso creció hasta el punto de que creó un archivo de 4,3 GB, se dio la vuelta e hizo un archivo .dump.001 además de un archivo .dump. Todos los guiones siguieron funcionando.
Esa es la pereza sysadmin proactiva definida!
fuente
Me gustaría tar un solo archivo, para copiarlo conservando la marca de tiempo (que se pasa por alto fácilmente en las descargas). Los permisos y la propiedad de los archivos son menos importantes: la descarga es un término que se aplica a los sistemas que no están bien integrados.
Ya sea tar'd o no, es una práctica estándar comprimir el archivo para acelerar las descargas y evitar quedarse sin espacio en disco.
fuente
Tar es especialmente útil para múltiples archivos no escritos en un sistema de archivos formal, siempre lo ha sido. Si por alguna razón hay alguna ocasión, solo se debe escribir 1 archivo, no tiene ninguna consecuencia real. Puedo dd mi .tar.gz directamente a / dev / sdx sin tener en cuenta la partición o el sistema de archivos. También puede ser cinta.
Generalmente se hace porque el script o proceso se ha copiado del código de herencia. Por supuesto, no hay necesidad de tar si solo hay un archivo, pero deja espacio para la mejora de múltiples archivos ......
fuente