Puede usar la -m
opción para especificar una lista alternativa de archivos mágicos, y si incluye el suyo antes del archivo mágico compilado ( /usr/share/file/magic.mgc
en mi sistema) en esa lista, esos patrones se probarán antes que los "globales". Puede crear una función, o un alias, para usar esa opción de forma transparente siempre de forma transparente simplemente emitiendo el file
comando.
El lenguaje utilizado en el archivo mágico es bastante poderoso, por lo que rara vez es necesario volver a la codificación C personalizada. La única vez que me sentí inclinado a hacerlo fue en los 90 es cuando coincidan los archivos HTML y XML era difícil porque no había manera (en ese momento) para tener la carcasa flexible y de desplazamiento de adaptación necesaria para ser capaz de analizar <HTML
y < Html
y < html
con un patrón . Implementé eso en C como modificador del patrón 'string', permitiendo ignorar mayúsculas y minúsculas y compactar espacios en blanco (opcionales) .
Estos cambios en C también requirieron la adaptación de los archivos mágicos . Y a menos que el file
código fuente haya cambiado significativamente desde entonces, siempre tendrá que modificar (o proporcionar reglas adicionales) en los magic
archivos que coincidan con esos cambios en el código C. Por lo tanto, podría comenzar intentando hacerlo solo con cambios en los archivos mágicos y volver a cambiar el código C si eso realmente no funciona.