Linux file命令

发布于:2025-04-08 ⋅ 阅读:(37) ⋅ 点赞:(0)


一. file命令简介

由于Linux系统并不是像Windows系统那样通过扩展名来定义文件类型,因此用户无法直接通过文件名来进行分辨文件类型。

  • 在Linux系统中,主要通过file命令来用于识别文件类型,也可以用来辨别一些内容的编码格式。
  • file命令通过分析文件头部信息中的标识来显示文件类型。
选项 说明
-b, --brief 结果中不显示文件名
--mime 输出 MIME 类型字符串(相当于--mime-type--mime-encoding)
--mime-type 输出 MIME 类型
--mime-encoding 输出 MIME 编码
-z--uncompress 查看压缩包中的文件类型
-f 从指定的文件中读取文件名,分别显示文件类型

二. -b 输出结果不显示文件名

  • 默认情况下file命令会将文件名输出到确认的结果中
  • -b选项可以不显示文件名
apluser@ubuntu24-01:~$ file control_file.log
control_file.log: ASCII text
apluser@ubuntu24-01:~$ file -b control_file.log
ASCII text

三. --mime 输出文件的MIME类型字符串

apluser@ubuntu24-01:~$ file --mime control_file.log
control_file.log: text/plain; charset=us-ascii

apluser@ubuntu24-01:~$ file --mime random.bin
random.bin: application/octet-stream; charset=binary

四. 批量确认文件类型

4.1 -f 从指定的文件中读取文件路径,显示其文件类型

apluser@ubuntu24-01:~/work$ cat file_search.txt
/home/apluser/work/20241111/create_user.sh
/home/apluser/work/20250125/query.sh
apluser@ubuntu24-01:~/work$ file -f file_search.txt
/home/apluser/work/20241111/create_user.sh: Bourne-Again shell script, Unicode text, UTF-8 text executable
/home/apluser/work/20250125/query.sh:       ASCII text

4.2 配合find命令查找确认

apluser@ubuntu24-01:~/work$ find . -name "*.sh" | xargs -I {} file --mime {}
./20241111/create_user.sh: text/x-shellscript; charset=utf-8
./20250125/query.sh: text/plain; charset=us-ascii