¿Gzip agrega verificación de integridad/crc a un .tar?

¿Gzip agrega verificación de integridad/crc a un .tar?

Ejecuto comandos:

tar -cf myArchive.tar myDirectory/
gzip myArchive.tar

luego copio el archivo a través de muchos medios no confiables y luego lo descomprimo usando:

tar -xzf myArchive.tar.gz

El hecho de que haya comprimido la bola de alquitrán, ¿garantizará de alguna manera la integridad, o al menos un CRC, del contenido descomprimido?

Respuesta1

tarpor sí mismo no escribe una suma de control para una comparación posterior. Si tiene gzipel tararchivo, puede tener esa funcionalidad.

tarusos compress. Si usa la -Zbandera mientras crea el archivo, tarusará el compressprograma al leer o escribir el archivo. Desde la gzippágina de manual:

El estandarcomprimirEl formato no fue diseñado para permitir comprobaciones de coherencia.

Pero puedes usar el -zparámetro. Luego tarlee y escribe el archivo a través de gzip. Y gzipescribe una suma de comprobación crc. Para mostrar esa suma de verificación use ese comando:

$ gzip -lv archive.tar.gz
method  crc     date  time           compressed        uncompressed  ratio uncompressed_name
defla 3f641c33 Sep 25 14:01               24270              122880  80.3% archive.tar

Desde la gzippágina de manual:

Cuando se utilizan los dos primeros formatos (gzip o zip significa), gunzip comprueba un CRC de 32 bits.

Respuesta2

Sí elformato de archivo gzipcontiene una suma de comprobación CRC-32 que se puede utilizar para detectar si el archivo está dañado.

Por supuesto, mientras que la suma de comprobación permite gzipdecirSi le dice que el archivo está dañado, en realidad no hace nada para ayudarlo a recuperar los datos dentro del archivo. Por lo tanto, es especialmente útil para cosas como comprobar que un archivo que acabas de descargar de la web realmente se descargó correctamente.

Si realmente le preocupa almacenar o transmitir sus archivos a través de medios no confiables, puede considerar usar un formato de archivo comoparque realmente proporcionaerror de correcciónademás de la detección de errores. Por supuesto, la desventaja de estos formatos es que la redundancia necesaria para la corrección de errores necesariamente aumenta un poco el tamaño del archivo.

Respuesta3

tarno tiene control de integridad. Ejemplo:

$ echo JJJJJJJJJJJJJJJJJJ > b
$ tar cvf a.tar b
$ sed -i s/JJJJJJJJJJJJJJJJJJ/tttttttttttttttttt/g a.tar
$ tar xvf a.tar
$ cat b

tttttttttttttttttt

Mira, el contenido del a.tararchivo cambió, por lo que el archivo btiene un contenido completamente diferente, pero tar no se dio cuenta. Esto es válido para cualquier tar, incluido tar-1.28 (más reciente) con ambos formatos tar --format=gnu --format=posix. El paxcomando (lector tar alternativo) pax -r < a.tartampoco detecta cambios en el archivo.

Respuesta4

El paquete PKZip (win/dos) viene con un programa llamado PKZipFix que puede recuperar archivos dañados. He usado esta utilidad en el pasado, puede recuperar archivos de archivos moderadamente dañados que no se descomprimen.

información relacionada