1.功能:识别文件类型,识别文件编码。
2.语法:
file [-bchikLNnprsvz0] [--apple] [--mime-encoding] [--mime-type] [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
file -C [-m magicfiles]
file [--help]
3.参数:
-b:列出文件辨识结果时,不显示文件名称。
-c:详细显示指令执行过程,便于排错或分析程序执行的情形
-f:列出文件中文件名的文件类型
-F:使用指定分隔符号替换输出文件名后的默认的“:”分隔符。
-i:输出mime类型的字符串
-L:查看对应软链接对应文件的文件类型
-z:尝试去解读压缩文件的内容
4.例子
[oracle@mycentos test]$ ls
today.txt
[oracle@mycentos test]$ file today.txt #默认打印输出文件的编码
today.txt: ISO-8859 text, with CRLF line terminators
[oracle@mycentos test]$ cat today.txt #由于编码与系统编码不一致,导致乱码。
?????
[oracle@mycentos test]$ iconv -f GBK -t UTF-8 today.txt -o today_utf.txt#使用iconv 将文件转码成utf-8格式,顺带复习一下iconv
[oracle@mycentos test]$ file today_utf.txt
today_utf.txt: UTF-8 Unicode text, with CRLF line terminators
[oracle@mycentos test]$ file -b today.txt #-b参数,输出时不显示文件名
ISO-8859 text, with CRLF line terminators
[oracle@mycentos test]$ echo "today.txt">>today_utf.txt #为了测试-f参数,将文件名称输入到today_utf.txt中
[oracle@mycentos test]$ file -f today_utf.txt
: cannot open `今天是星期四\015‘ (No such file or directory)#第一行不是文件名称,所以报错。
today.txt: ISO-8859 text, with CRLF line terminators#第二行是文件名称,所以输出文件对应的格式
[oracle@mycentos test]$ file -F " :)" -L today.txt #指定分隔符
today.txt :) ISO-8859 text, with CRLF line terminators
[oracle@mycentos test]$ file -i today.txt #输出文件的字符编码,原文件是在GBK编码格式编辑的,不知道为何在linux中显示的编码是iso-8859-1
today.txt: text/plain; charset=iso-8859-1
[oracle@mycentos test]$ file -i today_utf.txt
today_utf.txt: text/plain; charset=utf-8
本文出自 “三国冷笑话” 博客,请务必保留此出处http://myhwj.blog.51cto.com/9763975/1794511
原文地址:http://myhwj.blog.51cto.com/9763975/1794511