Eu tenho vários arquivos (notebooks Jupyter, .ipynb
) que são arquivos de texto. Todos eles contêm alguma marcação LaTeX. Mas quando eu executo file
, recebo:
$ file nb_*
nb_1.ipynb: ASCII text
nb_2.ipynb: ASCII text
nb_3.ipynb: ASCII text, with very long lines
nb_4.ipynb: LaTeX document, ASCII text, with very long lines
nb_5.ipynb: text, with very long lines
Como file
os distingue? Eu gostaria que todos os arquivos tivessem o mesmo tipo.
(Por que os arquivos devem ter o mesmo tipo? Estou enviando-os para um sistema online para compartilhamento. O sistema os classifica de alguma forma e os trata de maneira diferente, sem possibilidade de eu alterar isso. Suspeito que a plataforma use file
ou talvez libmagic internamente e gostaria de contornar isso.)
O reconhecimento do tipo de arquivo é conduzido pelos chamados padrões mágicos . O arquivo mágico para analisar o código fonte da família TeX contém vários nomes de macros que fazem com que um arquivo seja classificado como LaTeX . A cada partida é atribuída uma força , por exemplo, 15 no caso de
\begin
e 18 no caso de\chapter
. Isso torna a heurística mais robusta contra falsos positivos, como classificação incorreta de documentos Plain TeX ou ConTeXt que definem suas próprias macros com esses nomes.Encontrei uma string que parece
file
classificar um arquivo como LaTeX:Assim, pelo menos posso forçar todos os arquivos a terem o mesmo tipo adicionando alguns ambientes aos arquivos atualmente classificados como texto.