总览

file [ -bcnsvzL ] [ -f 命名文件 ] [ -m 幻数文件 ] file ...

描述

本手册页说明了3.27版本 file 命令的使用. File 命令试图检查每个参数以判定文件的类型. 检查共有三组,按如下顺序进行:文件系统检查,幻数检查,以及语言检查. 文件系统 检查成功则输出文件类型.

输出的类型一般会包含以下的词中的一个: text (文件中仅有 ASCII 字符,可以用 ASCII 终端读此文件,以保证内容的可靠性), executable (文件中保存的是程序编译后的结果,一些UNIX 内核或其它内核能理解这类文件), 或者 data 表示所有其它类型文件(data 一般为二进制文件或者不可打印的). 但是有的常用的文件格式(如core文件、tar包),虽然也包含二进制数据,却不属于这一类如果要修改 /usr/share/magic 或者程序本身, preserve these keywords . 当文件为``text'' 类型时,认为此文件为可读文件. 不要象在Berkeley环境中那样做 - 要把``shell commands text''改为``shell script''.

文件系统检查是建立在对 stat(2) 系统调用结果的分析上的. 程序会分析文件是否为空,或者是否是某种特殊文件. 对于所有可在现有系统上使用的文件类型 (比如套接口文件,动态链接文件,命名管道文件(FIFOs) 等),只要它在系统头文件 sys/stat.h 中已经定义过,就可以被检查到.

幻数检查用来检查文件中是否有特殊的固定格式的数据. 规范的例子如二进制可执行文件(编译后的程序) a.out ,该文件格式在标准include目录下的 a.out.h 文件中定义,也可能在 exec.h 中定义. 这些文件在文件开始部分附近的一个特殊位置保存有一个'幻数' , 通过幻数告诉UNIX 操作系统此文件是二进制可执行文件, 和其中包含的其它类型. 幻数的概念已经扩展到数据文件.任何在文件固定位置有与文件类型相关的不变标识符的文件都可以这样表示. 这些文件中的信息可以从幻数文件 /usr/share/magic 中读取.

如果文件为 ASCII 文件, file 会试图检查它的语言. 语言检查在文件开始的几个块中(任意位置)查找是否有特殊字符串(参看 names.h) 例如,关键字 .br 指出此文件很可能是 troff(1) 输入文件, 而关键字 struct 指出此文件是C程序. 语言检查不如前两组检查可靠,所以放在最后执行.它也用来检查一些混合文件(例如 tar(1) 存档文件)并确定文件是`ascii text'类型还是`data'类型.

选项

-b
不输出文件名 (简要模式).
-c
检查时打印输出幻数文件的解析结果.常与 -m 一起使用,用来在安装幻数文件之前调试它.
-f 命名文件
从在参数表前的 命名文件 中读出将要检查的文件名(每行一个文件).要有 命名文件 ,或者至少有一个文件名参数; 如果要检查标准输入, 使用``-''作为文件参数.
-m list
指定包含幻数的文件列表.可以是单个文件,也可以是用冒号分开的多个文件.
-n
每检查完一个文件就强制刷新标准输出. 仅在检查一组文件时才有效. 一般在将文件类型输出到管道时才采用此选项.
-v
打印程序版本并退出.
-z
试图查看压缩文件内部信息.
-L
(在支持符号链接的系统上)选项显示符号链接文件的原文件, 就像 ls(1) 命令的like-named 选项.
-s
通常, file 只是试图去检查在文件列表中那些 stat(2) 报告为正常文件的文件的类型.由于读特殊文件将可能导致不可知后果,所以这样可以防止发生问题.使用 -s 选项时 file 命令也将去读文件列表中的块特殊文件和字符特殊文件. 一般用于从原始磁盘分区中获得文件系统类型,此文件为块特殊文件. 这个选项也导致 file 命令忽略 stat(2) 报告的文件大小,因为在有些系统中原始磁盘分区的大小报告为0.

文件

/usr/share/magic - 默认的幻数列表

ENVIRONMENT

环境变量 MAGIC 用于设置默认的幻数文件.

file - 确定文件类型的更多相关文章

  1. html input file 设置文件类型

    解决方案: 使用 input 的 accept 属性指定接受文件类型 -----------更新--------------- 之前的代码有个缺点,打开文件窗口时会自动筛选文件夹下所有符合设定类型的文 ...

  2. Linux 命令 - file: 确定文件类型

    命令格式 file [-bchikLNnprsvz0] [--apple] [--mime-encoding] [--mime-type] [-e testname] [-F separator] [ ...

  3. input type="file"指定文件类型为excel

    指定上传类型为excel:加上accept="application/vnd.ms-excel"即可,只兼容chrome跟ff,不兼容ie <input type=" ...

  4. input file类型,文件类型的限制

    直接限制input type='file'的文件类型限制,通过accept属性进行设定,多个类型用逗号分隔开,因为accept是html5的新特性,所以火狐和IE的支持就显得单薄了, 如:

  5. JAVA对文件类型的校验

    通常,在WEB系统中,上传文件时都需要做文件的类型校验,大致有如下几种方法: 1. 通过后缀名,如exe,jpg,bmp,rar,zip等等. 2. 通过读取文件,获取文件的Content-type来 ...

  6. UNIX环境编程学习笔记(6)——文件I/O之判断文件类型

    lienhua342014-09-01 1 文件类型 我们平时最常接触的文件类型有普通文件(regular file)和目录(di-rectory file),但是 UNIX 系统提供了多种文件类型: ...

  7. Linux文件类型(学习笔记六)

    一.Linux下的文件类型 普通文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ - ] 目录文件:在由 ls –al 所显示出来的属性方面,第一个属性为 [ d ] 设备文件:一般都 ...

  8. 8 Linux 文件类型

    Linux 系统中的文件是没有扩展名的. 1.通过 ls -l 文件名,看第一个字符判断文件类型: -  普通文件(文本文件.二进制文件.压缩文件.电影.图片等) d  目录文件 b  设备文件(块设 ...

  9. input file控件限制上传文件类型

    网页上添加一个input file HTML控件: <input id="File1" type="file" /> 默认是这样的,所有文件类型都会 ...

随机推荐

  1. cf837D(01背包)

    题目链接: http://codeforces.com/contest/837/problem/D 题意: 给出 n 个数, 从中选出 k 个数使得这 k 个数的乘积末尾 0 最多 . 思路: 先记录 ...

  2. Luogu P2455 [SDOI2006]线性方程组 真•高斯消元板子

    果然如Miracle学长所说...调了一天...qwq..还是过不了线下的Hack upd after 40min:刚刚过了 就是多了一个判无解的操作... 当系数都为0,且常数项不为0时,即为无解. ...

  3. jap的教程

    第一个资料:   https://wenku.baidu.com/view/5ca6ce6a1eb91a37f1115cee.html 第二个资料 :http://www.yiibai.com/jpa ...

  4. Silverlight 密码框 Focus

    在做一个例子是需要运行起来后焦点默认设置在密码框上,在网上查了资料 自己找到一种方法,此方法在oob模式下管用 public Login() { InitializeComponent(); txtL ...

  5. C++之struct

    C++的struct对C做和很多补充,里面可以放函数(构造函数和虚函数),也可以同struct和class的继承,在C++中也完全可以替代class.他们之间的主要区别: 1 calss默认是私有继承 ...

  6. drupal优化全攻略

    下面是drupal优化的一些经验.分四大部分来讲. 第一部分:Drupal系统本身的设置来达到优化 第二部分:针对php代码进行的优化 第三部分:针对MYSQL数据库进行的优化 第四部分:针对网站架构 ...

  7. java 中的阻塞队列

    1.什么是阻塞队列: 支持阻塞的插入方法,意思是当队列满时,队列会阻塞插入元素的线程,知道队列不满. 支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空. 插入和移除操作的4种处 ...

  8. Java算法面试题 一个顺子带一对

    打牌里面经常出现的5张牌,一个顺子带一对,给你五张牌,比如:1,2,2,2,3 或者 5,6,7,4,4 或者 2,4,3,5,5 或者 7,5,9,6,9 ,这种情况就符合一个顺子带一对,则返回 t ...

  9. swift 2特性记录

    swift 团队一直在优化,让大家准备在秋天的时候,迁移到swift2做准备. 一.错误处理 异常处理,不是NSError对象和双指针. 可以使用 throws   来指定方法来抛出一个错误. 调用d ...

  10. 响应式及Bootstrap

    一丶CSS3的@media 查询 使用 @media 查询,你可以针对不同的屏幕大小定义不同的样式. @media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@med ...