
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
tar
por sí mismo no escribe una suma de control para una comparación posterior. Si tiene gzip
el tar
archivo, puede tener esa funcionalidad.
tar
usos compress
. Si usa la -Z
bandera mientras crea el archivo, tar
usará el compress
programa al leer o escribir el archivo. Desde la gzip
página de manual:
El estandarcomprimirEl formato no fue diseñado para permitir comprobaciones de coherencia.
Pero puedes usar el -z
parámetro. Luego tar
lee y escribe el archivo a través de gzip
. Y gzip
escribe 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 gzip
pá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
tar
no 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.tar
archivo cambió, por lo que el archivo b
tiene 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 pax
comando (lector tar alternativo) pax -r < a.tar
tampoco 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.