目录
一. 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