¿Qué significa "pruebas mágicas" para el comando de archivo?

¿Qué significa "pruebas mágicas" para el comando de archivo?

Estaba leyendo sobre el filecomando y encontré algo que no entiendo del todo:

El archivo está diseñado para determinar el tipo de archivo que se consulta.... El archivo logra esto realizandotresconjuntos de pruebas sobre el expediente en cuestión:

  • pruebas del sistema de archivos,
  • magiapruebas,
  • pruebas de idioma

Cuáles sonmagiapruebas?

Respuesta1

"magia" aquí se refiere a "numeros magicos": un valor especial que está en un lugar conocido en un archivo que identifica su tipo. El filecomando tiene una base de datos de estos números y a qué tipo corresponden. La biblioteca que va con esa base de datos se llamalibmagic, y puedes acceder a él desde tus propios programas.

No son necesariamente "números" como podríamos pensar en ellos. Por ejemplo, un archivo de imagen PNG siempre comienza con "\x89PNG\r\n\x1a\n", una clase Java comienza con los cuatro bytes (en hexadecimal) CA FE BA BE y un archivo HTML tiene "< html" en alguna parte cerca del inicio. Es sólo una pequeña secuencia de datos que se sabe que están en un archivo de ese tipo, normalmente muy cerca del inicio.

Cuando las personas definen formatos de archivo, a menudo incluyen uno de estos, ya sea deliberadamente o simplemente como parte para hacer que el formato encaje. filePuedes usarlos después. También tiene otras formas de mirar el contenido del archivo para adivinar qué es ("pruebas de idioma").

Respuesta2

Esto se refiere a los "bytes mágicos" que muchos formatos de archivo tienen al principio de un archivo y que muestran qué tipo de archivo es.

Por ejemplo, si un archivo comienza con #!entonces se considera un script.

información relacionada