Você pode usar a opção -m
para especificar uma lista alternativa de arquivos mágicos, e se você incluir os seus próprios antes do arquivo mágico compilado ( /usr/share/file/magic.mgc
em meu sistema) nessa lista, esses padrões serão testados antes do "globais". Você pode criar uma função, ou um alias, para usar de forma transparente e transparente essa opção apenas emitindo o comando file
.
A linguagem usada no arquivo magic é bastante poderosa, então raramente é necessário reverter para o código C customizado. A única vez que me senti inclinado a fazê-lo foi nos anos 90, quando a correspondência de arquivos HTML e XML era difícil, porque não havia maneira (na época) de ter a combinação flexível e offset necessária para poder analisar <HTML
e < Html
e < html
com um padrão. Eu implementei isso em C como modificador para o padrão 'string', permitindo ignorar o caso e compactar (opcional ) espaços em branco .
Essas alterações em C exigiram a adaptação dos arquivos mágicos também . E, a menos que o código-fonte file
tenha mudado significativamente desde então, você sempre precisará modificar (ou fornecer regras extras) em magic
arquivos que correspondam a essas alterações no código C. Então, você pode começar a tentar fazer isso apenas com alterações nos arquivos mágicos, e voltar a mudar o código C, se isso realmente não der certo.