通常 linux 中的 file 命令提供文件的真实文件类型,而不管是否提到扩展名。
例如:
# 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
Run Code Online (Sandbox Code Playgroud)
这给出了文件格式的详细描述,但我只需要格式(如果它是 zip,它应该只打印 zip)
如何做到这一点?
正如您所注意到的,file默认情况下,输出有点冗长:
$ file some.pdf
some.pdf: PDF document, version 1.4
Run Code Online (Sandbox Code Playgroud)
该-b选项禁止打印文件名,这有助于:
$ file -b some.pdf
PDF document, version 1.4
Run Code Online (Sandbox Code Playgroud)
如果信息太多,则使用该-i选项仅打印 MIME 类型和编码:
$ file -bi some.pdf
application/pdf; charset=binary
Run Code Online (Sandbox Code Playgroud)
或者,如果您只需要类型,请使用--mime-type:
$ file -b --mime-type some.pdf
application/pdf
Run Code Online (Sandbox Code Playgroud)
可以在此处找到标准 mime 类型列表。这个词斜线前可application,audio,video,或image等等。如果要从 mime 类型标准中删除第一个单词,cut可以使用:
$ file -b --mime-type some.pdf | cut -d/ -f2-
pdf
Run Code Online (Sandbox Code Playgroud)
由于从 mime 类型中删除第一个单词可能会留下一些歧义,因此最好保留完整的 mime 类型。
| 归档时间: |
|
| 查看次数: |
663 次 |
| 最近记录: |