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