He encontrado la pregunta ¿Cómo determinar si los datos son archivos tar válidos sin un archivo? , pero me preguntaba: ¿existe una solución de línea de comandos preparada?
gzip
validation
tar
gunzip
subestimar
fuente
fuente
-v
si solo está canalizando la salida/dev/null
?-z
opción también es innecesaria. No hace nada en el modo de extracción o lista.-z
Ese es definitivamente el caso con GNU tar. ¿Sabes si esto es cierto en otros lugares (BSD, etc.)?tar.gz
? ¿Alguna información de apoyo?probablemente podría usar la opción gzip -t para probar la integridad de los archivos
http://linux.about.com/od/commands/l/blcmdl1_gzip.htm
de: http://unix.ittoolbox.com/groups/technical-functional/shellscript-l/how-to-test-file-integrity-of-targz-1138880
Para probar que el archivo gzip no está dañado:
Para probar que el archivo tar en el interior no está dañado:
Como parte de la copia de seguridad, probablemente podría ejecutar el último comando y verificar el valor de $? luego por un valor de 0 (éxito). Si el tar o el gzip tienen un problema, $? tendrá un valor distinto de cero.
fuente
bzip2 -t file.bz2
para archivos bz2.tar -t > /dev/null
(nota:t
vs-t
)?Si desea hacer una extracción de prueba real de un archivo tar sin extraerlo al disco, use la opción -O. Esto arroja el extracto a la salida estándar en lugar del sistema de archivos. Si el archivo tar está dañado, el proceso se cancelará con un error.
Ejemplo de prueba fallida de bola de alquitrán ...
Ejemplo de trabajo ...
fuente
> /dev/null
para el ejemplo de trabajo.También puede verificar el contenido del archivo * .tag.gz usando
pigz
(gzip paralelo) para acelerar la verificación del archivo:fuente
He probado el siguiente comando y funcionan bien.
Sin embargo, podemos encontrar que estos dos comandos requieren mucho tiempo. Tal vez necesitemos una forma más rápida de determinar si los archivos comprimidos están intactos.
fuente
Una buena opción es usar
tar -tvvf <filePath>
que agrega una línea que informa el tipo de archivo.Ejemplo en un archivo .tar válido:
Archivo .tar dañado:
fuente
Todas estas son soluciones muy subóptimas. De la especificación GZIP
Tiene que estar codificado en el idioma que esté utilizando.
fuente
A veces sí, pero a veces no. Veamos un ejemplo de un archivo dañado:
Muestra:
Incluso si ejecutas
tar dijo que no había ningún error:
pero el archivo estaba dañado, ahora tiene "Fool" en lugar de "Pete".
fuente