如果不依赖文件扩展名/inode 数据,我很难获取正确的 mimetype 信息。使用 magic 时,无论文件是什么,它都会返回 text/plain。
了解一些背景信息。
当我允许 linux mimetype 使用 glob 及其其他方法时,它可以正常工作。
mimetype mountain.jpg
mountain.jpg: 图像/jpeg
当我尝试让它与魔法检查一起工作时,因为我想真正确保这个文件是一个图像,它告诉我它是一个文本文件
mimetype -M mountain.jpg
mountain.jpg: 图像/jpeg
为了确保它不是文本文件,我将使用文件命令
file -i mountain.jpg
mountain.jpg: 图像/jpeg;字符集=二进制
如果我尝试以下操作之一,我现在只能获得 text/plain。
cat mountain_dew-400-400.jpg | mimetype -M --stdin
标准输入:文本/纯文本
tee mountain_dew-400-400.jpg | mimetype -M --stdin
标准输入:文本/纯文本
mimetype --stdin - < mountain_dew-400-400.jpg
标准输入:文本/纯文本
我已经运行以下命令
cpan install IO::Scalar
cpan install File::MimeInfo
cpan install File::MimeInfo::Magic
答案1
mimetype --stdin
似乎根本不起作用。我已经提交了Debian 错误 #784545。
作为一种解决方法,您可以使用file -i -
而不是mimetype --stdin
。