3
A
回答
4
如果你知道你将会是一个理智的Unix系统,那么你只需要致电file
即可。
如果您需要独立实施,there are several available on CPAN。可能最接近file
的是File::MMagic。这是它自己的实现,所以它可以在任何系统上工作,但可能不像file
那样。
$ head test.pl
#!/usr/bin/env perl
use strict;
use warnings;
$ file test.pl
test.pl: a /usr/bin/env perl script text executable, ASCII text
$ perl -wlE 'use File::MMagic; $mm = File::MMagic->new; say $mm->checktype_filename(shift)' test.pl
x-system/x-unix; executable /usr/bin/env script text
0
File :: MMagic的built-in magic太短了,没用。避免。
改为使用File::LibMagic,这是最好的。
$ perl -mFile::LibMagic -MDDS -E \
'say Dump(File::LibMagic->new
->info_from_filename("Startopia EULA English.docx"))'
$HASH1 = {
description => 'Microsoft Word 2007+',
encoding => 'binary',
mime_type => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
mime_with_encoding => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document; charset=binary'
};
相关问题
- 1. Perl的命令或模块,如Linux的“文件”命令
- 2. Vim In-File命令
- 3. django命令找不到命令模块
- 4. 正确Perl中OpenSSH的模块引用来解析MySQL命令
- 5. 净:: SSH :: Perl的模块:执行多个命令
- 6. 无模块命名的命令行
- 7. 解析Perl模块使用哪个命令行参数?
- 8. 如何使用系统命令安装cpan模块 - perl
- 9. Gradle模块构建命令
- 10. 命令模块问题
- 11. 模块:命令未找到
- 12. Perl + Ajax - 通过HTML模拟命令行?
- 13. 的Python模块的命令行
- 14. JGit:git的子模块的foreach命令
- 15. 的Perl GetOptions模块
- 16. perl的:“unincluding”模块
- 17. cgi的Perl模块
- 18. perl模块vCard
- 19. cpanm Perl模块
- 20. Perl的命令行 - 的perl -pi -e
- 21. 使用Python命令的多行shell命令模块
- 22. django目录结构模块的命令
- 23. 命令在单独的模块
- 24. Python的sh模块 - 运行'source'命令
- 25. esp8266模块上的AT命令
- 26. 从Perl执行命令行命令?
- 27. 是否有一个与Unix的“which”命令类似的Perl模块?
- 28. Perl的命令与-d
- 29. Perl的exec命令失败
- 30. perl中的系统命令
将'docx'文件报告为zip,但'file'命令也是如此。 – CJ7
@ CJ7如果docx使用zlib压缩,我不会感到惊讶。您可能必须将其与文件扩展名的数据库结合使用。 – Schwern
我只使用这个由于某些原因没有扩展名的文件。 – CJ7