首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用linux 'file‘命令来确定类型(例如。(图像、音频或视频)

使用linux 'file‘命令来确定类型(例如。(图像、音频或视频)
EN

Stack Overflow用户
提问于 2011-11-12 01:28:11
回答 3查看 28.5K关注 0票数 10

这里的单词file指的是文件命令,而不是实际的文件。我想确定一个文件是否是一个视频文件(.mpg.mkv.avi)。file非常擅长为图像文件返回image,为视频文件返回video,为音频文件返回audio (由于某种原因而返回文本)。我的问题是,这对于识别类型有多可靠。如果我做了一个简单的

代码语言:javascript
复制
file -ib deliverance.avi | grep video

这是否适用于所有视频文件概述的这里

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-12 02:00:13

file的结果并不完美,某些类型的文件比其他类型的文件有更多的问题。文件基本上只是在可预测的模式中查找特定的二进制数据片段,以找出文件类型。

特别不幸的是,视频中经常使用的一些文件类型属于这个“有问题”的类别。较新的容器格式(如.mp4.mkv )通常有几种不同的MIME类型,它们应该正确地取决于所包含的数据类型。例如,可以根据内容正确地将.mp4标识为video/mp4audio/mp4application/mp4

在实践中,file经常做出与普通用法相一致的猜测,而且它可能对您非常有用。例如,虽然我提到了正确识别Matroska文件的一些理论困难,但file基本上假设任何Matroska文件都是视频。另一方面,Ogg容器的使用在音频和视频之间分配得更均匀,我相信当前版本的file只会消除差异,并将Ogg文件标识为application/ogg,这将不属于任何类别。

有一件事我可以肯定地说,那就是你想要最新版本的file,你可以得到你的手。包含要匹配的模式和匹配结果的MIME类型的“魔术”文件通常会被更新,以包括较新的文件类型(如WebM ),或者只是为了提高旧类型的准确性。

票数 11
EN

Stack Overflow用户

发布于 2011-11-12 01:53:21

文件的工作方式是将文件的头引用到“魔术号”文件。我怀疑查看从引用列表中查看本地魔术号文件(可能是/usr/share/魔术,但查看man文件中的文件类型)的健壮文件的最佳方法。

票数 1
EN

Stack Overflow用户

发布于 2011-11-12 01:53:47

它似乎应该适用于大多数视频/音频/图像文件。但是,如果没有,实际上有一个文件包含扩展名和类型之间的关系:

标识这些文件的信息是从编译后的魔术文件/usr/share/magic.mgc读取的,如果编译文件不存在,则从/usr/share/魔术读取。

请参阅:file.htm

希望这能有所帮助!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8101812

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档