Puede usar la -mopció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.mgcen 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 filecomando.
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 <HTMLy < Htmly < htmlcon 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 filecódigo fuente haya cambiado significativamente desde entonces, siempre tendrá que modificar (o proporcionar reglas adicionales) en los magicarchivos 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.