用来探测给定文件的类型,file命令 用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。
命令语法
file [选项][参数]
命令选项
- -b:列出辨识结果时,不显示文件名称;
- -c:详细显示指令执行过程,便于排错或分析程序执行的情形;
- -f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;
- -L:直接显示符号连接所指向的文件类别;
- -m<魔法数字文件>:指定魔法数字文件;
- -v:显示版本信息;
- -z:尝试去解读压缩文件的内容。
命令参数
文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
显示文件类型
代码语言:javascript复制> file outfile.txt
outfile.txt: ASCII text
> file -b outfile.txt <== 不显示文件名称
ASCII text
> file -i outfile.txt <== 显示MIME类别。
outfile.txt: text/plain; charset=us-ascii
> file -i -b outfile.txt
text/plain; charset=us-ascii
一些常见的类型包括:
text/plain
:普通文本。text/html
:HTML文本。application/pdf
:PDF文档。application/msword
:Word文档。image/png
:PNG图片。mage/jpeg
:JPEG图片。application/x-tar
:TAR文件。application/x-gzip
:GZIP文件。
显示符号链接的文件类型
代码语言:javascript复制> file system-release
system-release: symbolic link to `centos-release'
> file -L /tmp/
/tmp/: sticky directory
解读压缩文件的内容
代码语言:javascript复制> file -z Python-3.6.4.tgz
Python-3.6.4.tgz: POSIX tar archive (GNU) (gzip compressed data, from Unix, last modified: Tue Dec 19 13:36:13 2017, max compression)
解读可执行程序
代码语言:javascript复制> file /usr/bin/ls
/usr/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped
> file -i /usr/bin/ls <== 显示MIME类别
/usr/bin/ls: application/x-executable; charset=binary
原文链接:https://rumenz.com/rumenbiji/linux-file.html