如何从命令行获取文件的 mime 类型?

如何从命令行获取文件的 mime 类型?

我正尝试从命令行获取文件的 mime 类型作为打印字符串(例如application/vnd.oasis.opendocument.spreadsheet)。

我查找了如何执行此操作并找到了xdg-mime命令。

通过阅读手册页 ( man xdg-mime),我似乎应该运行xdg-mime query filetype FILE。但是,当我对任何文件运行此命令时,它不会打印任何内容并退出。

有办法解决这个问题吗?有其他命令吗?

答案1

使用file --mime-type -b filename

查看file --help更多提示。

答案2

此页面上的答案很好可以放入函数或脚本中,如下所示:

例子

$ mime_type.sh /etc/passwd  
text/plain

mime_类型

function mime_type()
{
  file --mime-type -b $*
}

mime_type $*

答案3

mimetype /path/to/file

在 18.04 中测试

答案4

xdg-mime和文件查询不同的数据库(xdg-mime更全面)。请参阅为什么“file --mime-type”和“xdg-mime query filetype”的结果有区别?以进行更多讨论。

xdg-mime在非桌面会话中无法正常工作(例如,如果您通过 SSH 连接到一台机器)。

相关内容