![file 命令仅打印文件格式](https://linux22.com/image/1506084/file%20%E5%91%BD%E4%BB%A4%E4%BB%85%E6%89%93%E5%8D%B0%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F.png)
通常,Linux 中的文件命令提供文件的真实文件类型,无论是否提到扩展名。
例如:
# file cntlm-0.92.3-1.x86_64.rpm
cntlm-0.92.3-1.x86_64.rpm: RPM v3.0 bin i386/x86_64 cntlm-0.92.3-1
# file zip-pack
zip-pack: Zip archive data, at least v2.0 to extract
这给出了文件格式的详细描述,但我只需要格式(如果是 zip,它应该只打印 zip)
如何实现这一点?
答案1
正如您所注意到的,默认情况下的输出file
有点冗长:
$ file some.pdf
some.pdf: PDF document, version 1.4
该-b
选项禁止打印文件名,这有助于:
$ file -b some.pdf
PDF document, version 1.4
如果信息太多,请使用-i
选项仅打印 MIME 类型和编码:
$ file -bi some.pdf
application/pdf; charset=binary
或者,如果您只需要类型,请使用--mime-type
:
$ file -b --mime-type some.pdf
application/pdf
可以找到标准 mime 类型的列表这里。斜线前的单词可以是、、application
或等等。如果要从 mime 类型标准中删除第一个单词,可以使用:audio
video
image
cut
$ file -b --mime-type some.pdf | cut -d/ -f2-
pdf
由于从 mime 类型中删除第一个单词可能会留下一些歧义,因此最好保留完整的 mime 类型。