file
在类似Unix的操作系统上,file命令报告文件的类型。
查看英文版
1 file 运行系统环境
2 file 描述
3 file 语法
4 file 例子
file 运行系统环境
Unix&Linux
file 描述
该file命令测试每个参数,企图对其进行分类。有三组测试,按此顺序执行:file系统测试,魔术测试和语言测试。第一个成功的测试导致打印file类型。
可打印的类型通常将包含以下单词之一:文本(file仅包含打印字符和一些常见的控制字符,并且可能在ASCII 终端上可以安全读取),可执行(file包含以某种形式编译程序的结果)对于内核是可以理解的),或表示其他含义的数据(通常是二进制或不可打印的)。例外是众所周知的包含二进制数据的file格式(核心file,tar 归档file)。
file系统测试基于检查stat系统调用的返回结果。程序检查file是否为空,或者是否为某种特殊file。如果在系统头file
魔术测试用于检查带有特定固定格式数据的file。一个典型的例子是一个二进制可执行file(编译程序)a.outfile,其格式定义为标准include目录中的
如果file与魔术file中的任何条目都不匹配,那么将检查该file是否似乎是文本file。ASCII,ISO -8859-x,非ISO 8位扩展ASCII字符集(例如在Macintosh和IBM PC系统上使用的字符集),UTF -8编码的Unicode,UTF-16编码的Unicode和EBCDIC字符集可以通过构成每个集合中可打印文本的字节的不同范围和顺序来区分。如果file通过了这些测试中的任何一个,则报告其字符集。ASCII,ISO-8859-x,UTF-8和扩展ASCIIfile被标识为“文本”,因为它们几乎可以在任何终端上读取;UTF-16和EBCDIC只是“字符数据”,因为尽管它们包含文本,但这些文本需要翻译才能被读取。此外,file将尝试确定文本类型file的其他特征。如果file的行以CR,CR LF或NEL而不是Unix标准LF终止,则将报告此错误。包含嵌入式转义序列或过分敲击的file也将被识别。
一旦file确定了文本类型file中使用的字符集,它将尝试确定file以哪种语言编写。语言测试寻找可以出现在file前几个块中任何位置的特定字符串(参见
不能识别为已用上面列出的任何字符集写入的任何file都称为“数据”。
查看英文版
file 语法
file [-bchiklLNnprsvz0] [--apple] [--mime-encoding] [--mime-type] [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...
file -C [-m magicfiles]
file [--help]
选件
-b,--brief | 不要在输出行前添加文件名(简短模式)。 | ||||||||||||||||||
-C,--compile | 编写一个magic.mgc输出文件,其中包含魔术文件或目录的预解析版本。 | ||||||||||||||||||
-c,-- checking-printout | 导致检查魔术文件的已解析形式的打印输出。该选项通常与-m标志一起使用,以便在安装新魔术文件之前对其进行调试。 | ||||||||||||||||||
-e,--exclude testname |
从确定文件类型的测试列表中排除testname中命名的测试。有效的测试名称是:
|
||||||||||||||||||
-F,-- separator separator | 使用指定的字符串分隔符作为文件名和返回的文件结果之间的分隔符。默认为' : '。 | ||||||||||||||||||
-f,-- files-from namefile | 从参数列表中的名称文件(每行一个)中读取要检查的文件的名称。要么namefile或至少一个文件名参数必须存在; 要测试标准输入,请使用' - '作为文件名参数。请注意,namefile打开并遇到此选项时,封闭的文件名的处理和之前的任何进一步的选项处理完毕。此选项允许在同一文件调用上使用不同的命令行参数处理多个文件列表。因此,如果要设置定界符,则需要在指定文件列表之前执行此操作,例如:“ -F @ -f namefile ”,而不是:“ -f namefile -F @ ”。 | ||||||||||||||||||
-h,-- no-dereference | 选项使得符号链接(在支持符号链接的系统)不遵循。如果未定义环境变量POSIXLY_CORRECT,则此选项为默认选项。 | ||||||||||||||||||
-i,-- mime | 使file命令输出mime类型的字符串,而不是更传统的人类可读的字符串。因此它可以说“文本/纯文本;charset = us-ascii '而不是“ ASCII text ”。 | ||||||||||||||||||
--mime-type,-- mime-encoding | 与-i类似,但仅输出指定的元素。 | ||||||||||||||||||
-k,--keep-going | 不要在第一场比赛就停下来,继续前进。随后的匹配将带有字符串' \ 012- '。(如果需要换行符,请参见-r选项。) | ||||||||||||||||||
-l,--list | 打印有关每个魔术图案强度的信息。 | ||||||||||||||||||
-L,-- dereference | option导致遵循符号链接,如ls中的同名选项(在支持符号链接的系统上)。如果定义了环境变量POSIXLY_CORRECT,则此选项为默认选项。 | ||||||||||||||||||
-l | 以用于匹配的顺序显示排序的模式列表。 | ||||||||||||||||||
-m,-- magic-file magicfiles | 指定包含魔术的文件和目录的备用列表。此选项可以是单个项目,也可以是用冒号分隔的列表。如果在文件或目录的旁边找到了已编译的魔术文件,则将使用该文件。 | ||||||||||||||||||
-N,--no-pad | 不要填充文件名,以使它们在输出中对齐。 | ||||||||||||||||||
-n,--no-buffer | 检查每个文件后强制刷新标准输出。仅当检查文件列表时,此选项才有用。该程序供希望从管道输出文件类型的程序使用。 | ||||||||||||||||||
-p,-- preserve-date | 在支持utime或utimes的系统上,尝试保留分析文件的访问时间,以假装该文件从不读取它们。 | ||||||||||||||||||
-r,--raw | 不要将不可打印的字符转换为\ ooo。通常,文件将不可打印的字符转换为它们的八进制表示形式。 | ||||||||||||||||||
-s,--special-files | 通常,文件仅尝试读取并确定参数文件的类型,这些参数文件是统计报告中的普通文件。这可以防止出现问题,因为读取特殊文件可能会产生特殊的后果。指定-s选项会使文件还读取作为块或字符特殊文件的参数文件。此选项对于确定原始磁盘分区(属于块特殊文件)中数据的文件系统类型很有用。此选项还会导致文件忽略stat报告的文件大小,因为在某些系统上,它报告的原始磁盘分区大小为零。 | ||||||||||||||||||
-v,-- version | 打印程序的版本并退出。 | ||||||||||||||||||
-z,--uncompress | 尝试查看压缩文件。 | ||||||||||||||||||
-0,-- print0 | 在文件名的末尾输出一个空字符'\ 0',这在例如您想剪切输出时很有用。此选项不会影响仍在打印的分隔符。 | ||||||||||||||||||
--help | 打印帮助消息并退出。 |
查看英文版
file 例子
file *
下面是运行时,可能会出现什么样的例子file与所有文件通配符:
shutdown.htm: HTML document text si.htm: HTML document text side0.gif: GIF image data, version 89a, 107 x 18 robots.txt: ASCII text, with CRLF line terminators routehlp.htm: HTML document text rss: setgid directory
file *.txt
下面是运行上述示例时可能显示的示例;运行file命令列出任何以.txt结尾的文件:
form.txt: news or mail text friend.txt: news or mail text ihave.txt: news or mail text index.txt: ASCII Java program text, with very long lines, with CRLF line terminators jargon.txt: news or mail text news.txt: Non-ISO extended-ASCII C program text, with very long lines, with CRLF line terminators newsdata.txt: Non-ISO extended-ASCII English text, with very long lines, with CRLF line terminators qad.txt: news or mail text refrence.txt: news or mail text robots.txt: ASCII text, with CRLF line terminators stopwords.txt: ASCII English text, with CRLF line terminators yhelp.txt: news or mail text
查看英文版
未知的网友