File-Format
file(1) 和 magic(5) :描述其他格式
我可以使用
file
andmagic
( http://linux.die.net/man/5/magic ) 來覆蓋其他一些已知格式的描述嗎?例如,我想描述以下格式:
- 床:http ://genome.ucsc.edu/FAQ/FAQformat.html#format1
- 固定: http ://en.wikipedia.org/wiki/FASTA_format
- …
那是“只是”文本文件
或者
那是“只是”一個以幻數開頭的壓縮文件
BAM\1
?
你知道任何例子嗎?
是否可以提供自定義 C 程式碼來測試文件而不是使用魔法格式?
您可以使用該
-m
選項來指定魔術文件的備用列表,如果您/usr/share/file/magic.mgc
在該列表中的已編譯魔術文件(在我的系統上)之前包含您自己的,則這些模式將在“全域”之前測試。您可以創建一個函式或別名,以透明地始終透明地使用該選項,只需發出file
命令即可。魔術文件中使用的語言非常強大,因此很少需要恢復到自定義 C 編碼。唯一一次我傾向於這樣做是在 90 年代,當時匹配 HTML 和 XML 文件很困難,因為(當時)沒有辦法擁有能夠解析和使用一種模式所需的靈活大小寫
<HTML
和偏移< Html
匹配< html
. 我在 C 中將其實現為“字元串”模式的修飾符,允許忽略大小寫和壓縮(可選)空白。C 語言中的這些更改也需要修改魔法文件。除非
file
原始碼從那時起發生了重大變化,否則您將始終需要修改(或提供額外)magic
文件中與這些 C 程式碼更改相匹配的規則。因此,您不妨開始嘗試僅更改魔術文件,如果確實行不通,則退回到更改 C 程式碼。