¿Existe alguna utilidad para comparar el contenido del archivo con la extensión?

¿Existe alguna utilidad para comparar el contenido del archivo con la extensión?

Estoy buscando una utilidad (ya sea para Linux o Windows) que pueda verificar que el contenido del archivo parezca coincidir con la extensión. Esto es para detectar archivos muy corruptos.

Estoy a punto de escribir un pequeño script bash que simplemente ejecutará "archivo" en todo, pero no quiero saber qué devuelve "archivo" para todos los tipos de archivos con el formato adecuado que estoy va a encontrar.

Antecedentes: Recientemente, un amigo borró accidentalmente su carpeta de usuario de Windows (sí... Escritorio, registro, Mis documentos, todo...). Utilicé una agresiva utilidad de recuperación para recuperar todo lo que pude. Esta utilidad en particular recupera múltiples copias del mismo archivo por algún motivo (es decir, "Letter.doc", "Letter(1).doc", "Letter(2).doc", etc...). Algunos de estos archivos contendrán basura aleatoria, otros serán documentos válidos y muchos de ellos serán elmismodocumento.

Entonces, he usado fdupes y un script en Perl para destruir todos los duplicados, pero ahora quiero separar los que parecen ser el archivo original de los que probablemente no lo son. No puedo creer que sea la primera persona que necesita hacer esto...

Respuesta1

Puedes probar eltridnetprograma (también hay unCLIy unen líneaversión). Identifica archivos basándose en firmas binarias, basándose en una biblioteca incorporada (y extensible). Aquí hay una listade las extensiones de archivo que puede identificar por defecto, aunque es posible agregar una definición para un nuevo tipo manualmente.

Tenga en cuenta que si la firma binaria del archivo esnointacto dañado, el software no sabrá que el archivo está dañado. Depende de la implementación de la aplicación que utiliza el archivo para comprobar si hay daños (ya que no hay forma de "saber" si un archivo está dañado).

Así es como funcionan los archivos, depende del programa que usa dichos archivos binarios verificar si están dañados o no (algunos tipos de archivos almacenan sumas de verificación dentro de ellos).

Respuesta2

Para aplicaciones de Office, hay una opción Abrir y reparar... en el cuadro de diálogo abierto.

Para imágenes, IrfanView puede reconstruir encabezados de archivos.

Para vídeos, VLC Player hará lo mismo.

Sin embargo, como dijo EBGreen anteriormente, es muy diferente a que exista un producto a nivel de consumidor que realmente haga esto para muchos tipos de archivos, y mucho menos para todos los tipos de archivos.

información relacionada