¿Cuál es la diferencia entre .tar.gz y .gz, o .tar.7z y .7z?

144

Recientemente, he estado copiando una gran cantidad de mis datos, y noté que puedo guardar archivos como .gz o .tar.gz , o .7z y .tar.7z , etcétera. ¿Cuáles son las diferencias entre la variante normal y la variante .tar.* ? ¿Cuál de ellos es asesorado al hacer copias de seguridad?

    
pregunta Exeleration-G 15.04.2012 - 03:09

6 respuestas

171

Si proviene de un fondo de Windows, es posible que esté familiarizado con los formatos zip y rar. Estos son archivos de múltiples archivos comprimidos juntos.

En sistemas Unix y Unix (como Ubuntu), el archivo y la compresión están separados.

tar coloca varios archivos en un solo archivo (tar).

gzip comprime un archivo (solo).

Entonces, para obtener un archivo comprimido, combina los dos, primero use tar o pax para obtener todos los archivos en un solo archivo (archive.tar), luego gzip it (archive.tar.gz) . Si solo tiene un archivo que necesita comprimir (notes.txt), no hay necesidad de tar, por lo que simplemente hace gzip notes.txt , lo que dará como resultado notes.txt.gz . Hay otros tipos de compresión, como compress , bzip2 y xz que funcionan de la misma manera que gzip (aparte de usar diferentes tipos de compresión, por supuesto)

    
respondido por el geirha 15.04.2012 - 03:41
45

Depende de lo que esté buscando ... ¿Compresión o archivo?

Cuando hablo de archivar, me refiero a preservar permisos, estructura de directorios, etc. ...

La compresión puede ignorar la mayoría de eso y solo obtener sus archivos en paquetes más pequeños.

Para conservar los permisos de archivos, use tar:

tar cpvf backup.tar folder

El indicador p guardará los permisos de archivo. Use la bandera z para la compresión gzip o la bandera j para la compresión bzip.

tar czpvf backup.tar.gz folder #backup.tgz is acceptable as well
tar cjpvf backup.tar.bz2 folder #backup.tbz2 works too

Si quiere tener un archivo tar, puede "actualizar" el paquete utilizando la bandera P:

tar cpPvf backup.tar folder

Luego, para actualizar, reemplace 'c' por 'u' y al desempacar, puede usar 'k' para conservar los archivos que ya existen.

tar upPvf backup.tar folder #updating a tar file
tar xpPkvf backup.tar #extracting a tar with permissions(p) and not extracting(k) files that exist on disk already

El indicador P guarda los archivos con rutas completas, por lo que - / inicio / nombre de usuario frente a inicio / nombre de usuario (observe la barra inclinada inicial).

La compresión de 7z ofrece una mayor compresión, pero no conserva la propiedad de archivos, permisos, etc. Rzip es otra utilidad de compresión que también ofrece una compresión comparable con 7z.

Supongo que un archivo backup.tar.7z es solo un archivo tar (con permisos) comprimido por un archivo 7z, aunque no me sorprendería si ocurriera poca compresión porque 7z podría no ser capaz de volcar los metadatos del archivo. La capacidad de 7z de excluir los metadatos del archivo puede ofrecer una gran compresión (entre otras cosas, por supuesto).

La compresión también depende completamente del tipo de datos. Algunos archivos no se comprimen bien porque es posible que ya estén comprimidos por otros medios (es decir, .mp3, .jpg, .tiff / con lzma, .rpm, etc.).

    
respondido por el SaultDon 15.04.2012 - 03:45
10

gzip o bzip2 no sabe acerca de file system - nombre de archivo, directorio o estructura de árbol. Simplemente comprime el flujo de entrada y luego el resultado de salida. Incluso gzip o bzip2 no pueden archivar directorios por sí solos, es por eso que generalmente se combina con tar.

tar (archiver): solo archivar la estructura del archivo. gzip, bzip2 (compresor): simplemente comprima la entrada.

Creo que esta estrategia vino de 'hacer una cosa bien' filosofía de Unix. Tar funciona bien? Déjalo como está. ¿Necesita más compresión que gzip? Aquí está bzip2 o 7zip.

    
respondido por el Mait 15.04.2012 - 06:55
8

sus diferentes estilos de compresión, el alquitrán en sí mismo simplemente se archiva (poca o ninguna compresión). tar.gz es un archivo tar pero el contenido está comprimido por gzip (compresión moderada), por lo tanto, el .gz y el tar.7z se comprimen con 7zip (generalmente compresión súper alta)

al realizar la copia de seguridad, recomendaría tar.7z, ya que tiene la tasa de compresión más alta, lo que le permite ahorrar espacio, pero utiliza un programa adicional (7zip). .tar.gz serán archivos más grandes y harán el mismo trabajo, también podrías usar bzip (.tar.bz / bz2) aunque no estoy seguro si eso te conviene más ya que uso gzip o 7zip

    
respondido por el MuffinStateWide 15.04.2012 - 03:36
3

por lo general, los archivos * .tar son solo archivos tar creados por el programa tar, * los programas .gz son creados por gzip, * .tar.gz (a veces también * .tgz) son archivos gziped tar, y * .7z son creados por 7zip.

Sin embargo, en Linux / Unix, uno puede nombrar un archivo más o menos como quiera, por lo que es completamente a discreción del creador de los archivos.

    
respondido por el G. He 15.04.2012 - 03:21
3

Tar (Tape Archiver) se ha usado tradicionalmente como un contenedor en Unix / Linux para empaquetar archivos para el movimiento. Empaqueta la estructura del archivo y mantiene los atributos del archivo, pero no comprime los archivos.

Los programas de compresión comprimen el archivo para hacerlo más pequeño, pero es posible que no manejen varios archivos y / o que no manejen los atributos de archivo neccesssary para Linux. Como tar ya existe y es bien soportado, no hay razón para archivar programas para duplicar esta funcionalidad, que es específica de la plataforma (re, diferente para Windows y Linux). Además, los diferentes programas de compresión pueden funcionar de manera diferente en diferentes tipos de archivos, por lo que es deseable elegir más de uno.

    
respondido por el Marty Fried 15.04.2012 - 03:34

Lea otras preguntas en las etiquetas