Unix decide sobre el tipo de archivo buscando archivos mágicos en desplazamientos fijos. ¿Cómo puede hacerlo de manera confiable?

Unix decide sobre el tipo de archivo buscando archivos mágicos en desplazamientos fijos. ¿Cómo puede hacerlo de manera confiable?

Dehttps://linux.die.net/man/1/file:

Las pruebas mágicas se utilizan para buscar archivos con datos en formatos fijos particulares. El ejemplo canónico de esto es un a.outarchivo binario ejecutable (programa compilado), cuyo formato se define en #include <a.out.h> y posiblemente #include <exec.h>en el directorio de inclusión estándar. Estos archivos tienen un 'número mágico' almacenado en un lugar particular cerca del comienzo del archivo que le indica al sistema operativo UNIX que el archivo es un ejecutable binario y cuál de los varios tipos del mismo. El concepto de "magia" se ha aplicado por extensión a los archivos de datos. Cualquier archivo con algún identificador invariante en un pequeño desplazamiento fijo en el archivo generalmente se puede describir de esta manera. La información que identifica estos archivos se lee del archivo mágico compilado /usr/share/misc/magic.mgco de los archivos en el directorio /usr/share/misc/magicsi el archivo compilado no existe. Además, si existe $HOME/.magic.mgco $HOME/.magic, se utilizará con preferencia a los archivos mágicos del sistema. Si /etc/magicexiste, se utilizará junto con otros archivos mágicos.

Me parece bien. Entonces, si, por coincidencia, un archivo de texto contiene un 'número mágico' específico, por ejemplo, de un mp4video en un desplazamiento apropiado... ¿Al hacer doble clic en dicho archivo de texto se iniciará un reproductor de video en lugar de un editor de texto? ?

Respuesta1

Depende: su escritorio puede indexar archivos mirando su tipo MIME usando file. O simplemente puede mirar el sufijo del archivo y creer que (ver por ejemploUna referencia rápida a extensiones de archivos y tipos MIME ).

En cualquier caso, el reproductor de vídeo hará supropiocomprobaciones para garantizar que el archivo se cargue correctamente, y solo una implementación ingenua solo mirará los primeros bytes.

El fileprograma utiliza una combinación de información (incluidos pesos para las medidas que toma). Un archivo mpeg4 tiene mucha información que filequizás no utilice (o necesite). ver por ejemploEjemplo de formato y recuperación de audio MPEG-4 Parte 14 (M4A, M4B, M4P), yFormato de firma MP4: ejemplo de documentación y recuperación

información relacionada