jay*_*yce 7 linux design-patterns classification file libmagic
我开始怀疑这是否可能,因为在SO,Google,Bing和linuxquestions.org上的多次搜索都没有发现.
我有兴趣扩展位于/usr/share/magic
(由file(1)
实用程序使用)的魔术模式,以根据文件末尾或附近的数据识别文件.我已经能够在文件的开头执行此操作,以及从一开始就对文件进行任意偏移.
该手册页非常好地说明了一些标准用例; 不幸的是,似乎没有一种方法可以从最终开始而不是从开头开始.我能想到的唯一解决方法是使用tac
和/或采用脚本方法,lreverse
但感觉这些可能对二进制数据不友好.
此外,我想避免任何其他脚本处理 - 我觉得这应该是正确的文件魔术可行.有任何想法吗?
这是不可能的.file(1)
设计也适用于管道.您不能lseek(2)
在管道上使用到达文件的末尾.读取整个文件直到结束将非常缓慢(并file(1)
努力快速)并且如果它实际上是从管道读取,它可能永远不会遇到文件的结尾,这将更糟糕.
至于文档,在开源软件的情况下,源代码本身就是最终的文档.如果你遇到这样的情况,看看总是一个好主意.该函数file_or_fd()
在src/magic.c
给出线索.使用来源,卢克!;-)
在您的具体情况下,我将再次查看有问题的文件格式,如果它真的无法解析file(1)
,那么简短的Perl或Python脚本应该可以解决问题.祝好运!
归档时间: |
|
查看次数: |
1042 次 |
最近记录: |