用途说明

file命令是用来检测并显示文件类型(determine file type)。

常用参数

-b  不显示文件名称,只显示文件类型。在shell脚本中时有用。

-i     显示MIME类别。

-L  直接显示符号连接所指向的文件的类别。

-f namefile    指定名称文件(namefile),该文件每一行为一个文件名,file命令将按每一行的文件名辨别该文件的类型

使用示例

示例一 显示文件类型

[root@web ~]# file install.log
install.log: UTF-8 Unicode text
[root@web ~]# file -b install.log     
UTF-8 Unicode text
[root@web ~]# file -i install.log     
install.log: text/plain; charset=utf-8
[root@web ~]# file -b -i install.log
text/plain; charset=utf-8
[root@web ~]#

示例二 显示符号链接的文件类型

[root@rhel55 ~]# ls -l /var/mail
lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail

[root@rhel55 ~]# file /var/mail
/var/mail: symbolic link to `spool/mail'
[root@rhel55 ~]# file -L /var/mail
/var/mail: directory
[root@rhel55 ~]# file /var/spool/mail
/var/spool/mail: directory
[root@rhel55 ~]# file -L /var/spool/mail
/var/spool/mail: directory
[root@rhel55 ~]#

 

示例三

[root@web186 root]# file *
1.sh:                                      ASCII text
1.txt:                                     empty
20080308xzmf.txt:                          ASCII text, with CRLF line terminators
448FD15874B0DC51.wav:                      RIFF (little-endian) data, WAVE audio, ITU G.711 a-law, mono 8000 Hz
449110BA327B23C6.vox:                      8086 relocatable (Microsoft)
600d.wav:                                  RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz
anaconda-ks.cfg:                           ASCII English text
banner.swf:                                data
commons-beanutils.jar:                     Zip archive data, at least v1.0 to extract
cvs_accept.sh:                             Bourne shell script text executable
data:                                      directory
employer0605.txt:                          Non-ISO extended-ASCII text
GetFirstFile.class:                        compiled Java class data, version 49.0
GetFirstFile.java:                         ASCII Java program text
HELPFILE:                                  C++ program text
httptunnel.zip:                            Zip archive data, at least v2.0 to extract
iptables_man.txt:                          ASCII English text, with overstriking
lnx61su_171.tar.gz:                        gzip compressed data, from Unix
megamgr.bin.filepart:                      ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, statically linked, stripped
MegaPR_Linux_A02.tar.gz:                   gzip compressed data, was "MegaPR_Linux_A02.tar", from Win/32
mess0429.txt:                              ISO-8859 text, with very long lines
smartmontools-5.36.tar.gz:                 gzip compressed data, from Unix, max compression
sms.qunfa:                                 ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.5, dynamically linked (uses shared libs), not stripped
sms.vip.cfg:                               ISO-8859 text, with very long lines
top.txt:                                   ASCII text, with CRLF, LF line terminators
voice20061128.rar:                         RAR archive data
vox2amr.sh:                                Bourne-Again shell script text executable
[root@web186 root]#

 

注:使用file命令显示出来的文件类型有些情况下不一定太准确,如上面黑体显示的.vox文件格式,应该是Dialogic VOX File格式的。

问题思考

1. 怎样自定义某种文件类型?

相关资料

【1】脚本学习 linux file命令: 辨别文件类型

12-23 13:37