代码之家  ›  专栏  ›  技术社区  ›  anon

如何在Linux中确定文件类型?

  •  3
  • anon  · 技术社区  · 15 年前

    如果有人给我发送了一个没有扩展名的文档(.pdf,.doc,.xls,ppt,.ogg,mp3,png等),我如何确定文件类型?/usr/bin/file命令并不总是猜对,或者只是说我有一个Microsoft Office文档。我想知道确切的,以便我可以添加文件名的扩展名。

    4 回复  |  直到 10 年前
        1
  •  7
  •   Paul Whelan    15 年前

    你可以通过添加到/etc/magic来制定自己的规则。

    更多详细信息。要想一直正确地回答这些问题是很困难的,但是我已经取得了合理的成功。

        2
  •  3
  •   Bill Ruppert    10 年前

    尝试mimetype(1)。

    对于Perl,请看 File::MimeInfo .

        3
  •  1
  •   Kent Fredric    15 年前

    到目前为止,其他一些海报似乎忽略了一些事情。

    File::MimeInfo 使用“file”使用的相同mimeinfo数据库来标识文件。所以这不太可能有什么不同。

    File::Type 很可能很有趣,因为它只依赖于自身,但这会导致 滑稽地 包含“if”语句的长脚本。但从本质上讲,这不太可能涵盖“文件”已经不涉及的内容。

    对于未知的文件类型,最好的方法是尝试用十六进制编辑器将其打开,或者通过“字符串”运行它们,并查看是否识别出任何内容。如果您管理如何识别一个文件,您可能希望 文件::类型 作为你的解决方案,因为据我所知,它至少很容易扩展。

        4
  •  1
  •   Bill Ruppert    10 年前

    您可以使用perl模块: File::Type