Вы можете использовать эту -mопцию, чтобы указать альтернативный список магических файлов, и если вы включите свой собственный файл /usr/share/file/magic.mgcв этот список до скомпилированного магического файла ( в моей системе), эти шаблоны будут проверены перед «глобальными». Вы можете создать функцию или псевдоним, чтобы всегда прозрачно использовать эту опцию, просто введя fileкоманду.
Язык, используемый в магическом файле, достаточно мощный, поэтому редко возникает необходимость вернуться к пользовательскому кодированию на Си. Единственный раз, когда я чувствовал склонность сделать это, было в 90-х годах, когда сопоставление файлов HTML и XML было трудным, потому что не было никакого способа (в то время) иметь гибкое сопоставление регистров и смещений, необходимое для возможности анализа <HTMLи < Htmlи < htmlс одним шаблоном , Я реализовал это в C как модификатор шаблона 'string', позволяющий игнорировать регистр и сжимать (необязательные) пробелы .
Эти изменения в C также потребовали адаптации магических файлов . И если с тех пор fileисходный код значительно не изменился, вам всегда нужно будет изменять (или предоставлять дополнительные) правила в magicфайлах, соответствующих этим изменениям кода C. Таким образом, вы могли бы также начать пытаться делать это с изменениями только в волшебных файлах и вернуться к изменению кода C, если это действительно не сработает.