Linux文件类型:在 Linux中检查文件类型(linux detect file type)

关于Linux文件类型的问题,在linux detect file type中经常遇到, 我想检查某些文件,看看它们的类型和扩展名是否匹配。我目前正在做的是使用file命令检查 mime 类型 (或来自file的基本输出) 并将其与文件扩展名进行比较。但是,某些文件类型返回相同的 mime 类型,例如.sfx和.dll。

我想检查某些文件,看看它们的类型和扩展名是否匹配。我目前正在做的是使用file命令检查 mime 类型 (或来自file的基本输出) 并将其与文件扩展名进行比较。但是,某些文件类型返回相同的 mime 类型,例如.sfx.dll

另外我有一些文件与没有扩展名在所有,我应该能够正确地确定它们的文件类型。

我希望能够正确获取所有文件类型,但我目前感兴趣的最重要的文件类型是;

dll

msi

com

cpl

exe

ocx

tmp

upd

是否有任何其他工具检查并返回文件的类型?

EDIT

我写了一个可以用作 linux 命令的 nodejs 脚本,我已经通过合并公共数据库创建了自己的文件签名数据库,每个文件扩展名的格式如下;

"ISO" : [
    {
        "signature": "4344303031", // byte sequence
        "size": 5, // size of byte sequence
        "offset": 32769 // offset in the file for the signature bytes
    },
    {
        "signature": "4344303031",
        "size": 5,
        "offset": 34817
    },
    {
        "signature": "4344303031",
        "size": 5,
        "offset": 36865
    }
]

现在;我首先检查文件名中可用扩展名的签名字节(text.iso 将导致.iso),然后我去检查该文件的签名字节,看看它是否真的是一个 iso 文件。

如果它不是 iso,我检查所有的签名字节序列的每个扩展,我在我的数据库对给定的文件,看看是否有任何匹配。

如果我找不到匹配,我执行文件命令,获取文件的 mime 类型,并使用我创建的另一个 db 匹配 mime 类型与扩展,看看是否有匹配。

"application/atom+xml": [
    "atom",
    "xml"
],
"application/atomcat+xml": [
    "atomcat"
],
"application/atomsvc+xml": [
    "atomsvc"
]

这个解决方案目前满足我的项目的需求。也许这可能会帮助别人。

0

pip install filemagic之后使用 Python:

>>> import magic
>>> with magic.Magic() as m: m.id_filename('tmp.py')
... 
'Python script, ASCII text executable'
>>> with magic.Magic() as m: m.id_filename('test.html')
... 
'HTML document, ASCII text'
0

Linux 有一个内置的file命令:man file

Windows 和 * nix 之间的主要区别在于 DOS / Windows 对文件后缀具有内置依赖项。例如,可执行文件必须命名为“.exe”(或.com);.bat 文件必须命名为“.bat”(或.cmd)。

Linux,MacOS,BSD 等没有这样的限制。相反,它们必须具有“执行”权限集才能“可运行”。这对于二进制可执行文件(例如编译代码)或脚本(例如 Python,Perl...或 shell 脚本)都是如此。

“file”命令不仅依赖于文件后缀,还查看文件本身中的自标识“幻数”或其他“头信息”。

建议:

如果内置的“文件”不满足您的需求;也许你可以把它包装在一个 shell 脚本:

1)检查某些“众所周知的后缀”(使用basename提取后缀),和 / 或

2)调用“文件”作为后备

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(415)
Linux收集日志命令:Linux中 make命令的错误日志
上一篇
分区表损坏:转换为分区表(what is a partitioned table)
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(43条)