文件命令 (Debian Jessie) 无法识别某些 Perl 模块。例如: /usr/share/perl5/XML/SAX.pm (来自 libxml-sax-perl)给出:
$ file /usr/share/perl5/XML/SAX.pm
/usr/share/perl5/XML/SAX.pm: C++ source, ASCII text
该模块开始于:
# $Id$
package XML::SAX;
use strict;
use vars qw($VERSION @ISA @EXPORT_OK);
当我删除前两行时,文件将其视为 Perl 模块:
$ file tt
tt: Perl5 module source, ASCII text
尽管如此,其他以注释开头的模块,例如/usr/lib/i386-linux-gnu/perl/5.20.2/Encode.pm
已被正确识别。
这是一个错误吗?我在哪里可以找到未编译的 mime 数据/usr/share/file/magic.mgc
?
答案1
未编译的数据(不是 MIME 数据)/usr/share/file/magic.mgc
位于Magdir
在里面file(1)
源代码。 Perl 魔法的具体定义是Magdir/perl
。您看到的问题是固定的;该修复程序在file
5.23 及更高版本中提供。