En mi empresa, descargamos una instantánea de la base de datos de desarrollo local como un db.dump.tar.gzarchivo. 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.gzun 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.tgzextensió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.gzque era superior a la mayoría de los otros métodos comunes. Recuerdo que era superior a solo.tarpero no puedo recordar si fue mejor que solo.gz. Irónicamente, el.cabformato de Windows fue el mejor de los métodos que probé, lo cual fue muy inesperado.tarno es un algoritmo de compresión, es un formato de archivoRespuestas:
Las ventajas de usar en
.tar.gzlugar de.gzson quetaralmacena más metadatos (permisos UNIX, etc.) quegzip.La sobrecarga de uso
tartambié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,zgrepetc., que también existen parabzip2yxz).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 modernostardetectarán automáticamente que el archivo debe descomprimirse.gzipalmacenará el nombre del archivo original y la marca de tiempo. Puede usar la-Nopció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
gziphace que el archivo sea más pequeño (en la mayoría de los casos):tar:gzip:Con solo
tarusted no puede estar seguro de que sus datos no están dañados. Con sologzipusted 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
tarpá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
tgzextensió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 latarcompresión es distinta. ;-)Hay una diferencia importante que podría hacer que el uso sea
tarimportante en algunas circunstancias: además de los "metadatos" que @jofel mencionó en su respuesta,tarregistra 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.gzydb.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.gzy 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). Untararchivo 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
tararchivo viaja de manera diferente a un archivo normal.fuente
gzip --nameexplí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