1. file命令简介
Linux中的file命令用于检测文件类型。由于Linux系统中,不以后缀名区分文件类型,很多文件并不像Windows系统这样带后缀名。比如/etc/passwd这样的文件。从名字上很难判断这个文件是文本文件,还是链接文件,还是二进制文件。
2. 一些实用例子
[root@zcwyou ~]# file latest.tar.gz
latest.tar.gz: gzip compressed data, from Unix, last modified: Thu Aug 2 16:39:45 2018
可以看出这个文件是一个压缩文件,gzip格式。虽然从后缀名上就可以判断出来,但如果名字改了呢?或者后缀名是随便写的呢?
[root@zcwyou ~]# file 1.pcap
1.pcap: tcpdump capture file (little-endian) – version 2.4 (Ethernet, capture length 262144)
可以看出这个文件是tcpdump的抓包文件。虽然从后缀名上就可以判断出来,但如果名字改了呢?或者后缀名是随便写的呢?
[root@zcwyou ~]# file /etc/passwd
/etc/passwd: ASCII text
可以看出这个文件是一个text的文本文件,类似于Windows的记事本保存出来的文件。
[root@zcwyou ~]# file /usr/bin/tcptraceroute
/usr/bin/tcptraceroute: POSIX shell script, ASCII text executable
可以看出这是一个可执行的脚本文件。
[root@zcwyou ~]# file /usr/bin/wc
/usr/bin/wc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=4d56995fc5eb4e8076d6ee0613a4acb01ab10475, stripped
可以看出这是一个二进制文件,是一个程序文件。人类不能直接读取内容。
[root@zcwyou ~]# file /etc/rc.d/rc3.d/S10network
/etc/rc.d/rc3.d/S10network: symbolic link to `../init.d/network’
可以看出这个是一个链接,指向上一级目录的init.d/network
[root@zcwyou ~]# file -L /etc/rc.d/rc3.d/S10network
/etc/rc.d/rc3.d/S10network: Bourne-Again shell script, ASCII text executable
数据-L是直接显示链接对应的文件的类型,而不是这个文件本身的类型,可以看出这是一个可执行的脚本。
3. 常用选项
-b:输出结果时,不显示文件名称和路径;
-L:显示符号连接所指向的文件类别;
-v:查看file的版本信息;
-z:尝试解读压缩文件的内容。
4. 总结
file命令是一个用于判断文件类型的一个工具,原因是Linux中,文件后缀名可有可无,后缀名只是给人类方便识别的。
评论前必须登录!
注册