Linux file命令:查看文件信息或类型

Linux file命令用于辨识文件类型,通过file指令,我们得以辨识该文件的类型。

语法

file [-bcLvz][-f <名称文件>][-m <魔法数字文件>…][文件或目录…]
参数

  • -b  列出辨识结果时,不显示文件名称。
  • -c  详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
  • -L  直接显示符号连接所指向的文件的类别。
  • -m<魔法数字文件>  指定魔法数字文件。
  • -v  显示版本信息。
  • -z  尝试去解读压缩文件的内容 (支持gzip类型)。
  • [文件或目录…]要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件

实例

查看文件类型
1
2
[root@hardwareupdate linux_test]# file hello.txt
hello.txt: UTF-8 Unicode text

使用不带任何选项的 file 命令,即可查看指定文件的类型信息。在上面的例子中可以看出 poetry.txt 的文件类型为 text,编码格式为 UTF-8。

使用-b就只显示编码和文件类型,不显示文件名

1
2
[root@hardwareupdate linux_test]# file -b hello.txt
UTF-8 Unicode text

使用-i,咱们能看出什么?

1
2
[root@hardwareupdate linux_test]# file -i hello.txt
hello.txt: text/plain; charset=utf-8

常见的文件类型:

  • 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文件
按照清单去工作

如果我们需要用 file 命令查看大量文件的类型信息,恰好这些文件的名称都被存储在了一个文本文件中,那么-f选项就派上用场了。我们可以通过-f选项来指定这个文本文件,file 命令就会乖乖地去逐个查看每一个文件的类型信息,示例如下:

1
2
3
4
5
6
7
8
9
10
11
#文件中含有三个待查文件, 我们故意设置了一个不存在的文件, 位于最后一个
[roc@roclinux ~]$ cat poetry_list.txt
/root/book/poetry.txt
/root/book/poetry_s.txt
Nothing.txt

#使用-f选项执行file命令
[roc@roclinux ~]$ file -f poetry_list.txt
/root/book/poetry.txt: ASCII text
/root/book/poetry_s.txt: symbolic link to `poetry.txt'
Nothing.txt: ERROR: cannot open `Nothing.txt ' (No such file or directory)

其他的各种指令,大家也可以去尝试,比如-L,当用软链接的时候不会直接返回文件类型,而是返回的是symbolic link to XXX,所以加-L就可以知道它是哪个类型了。

参考

file命令_Linux file命令:查看文件信息或类型