我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux命令学习手册-file

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux命令学习手册-file

file [-beLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

功能

辨识文件类型。

举例

检查文件类型

$file file.c file /dev/hda

输入之后,输出如下:

file.c:   C program textfile:     ELF 32-bit LSB executable, Intel 80386, version 1,dynamically linked, not stripped/dev/hda: block special

检查文件类型,不输出文件名

$file -b test/

输入之后,输出如下:

directory

检查文件类型,文件名和结果用 “,” 隔开

$file -F, example/

输入之后,输出如下:

example, directory

这里可以指定其它的分割字符。

检查块文件内部,获得文件系统信息

$file -s /dev/hda{,1,2,3,4,5,6,7,8,9,10}

输入之后,输出如下:

/dev/hda:   x86 boot sector/dev/hda1:  Linux/i386 ext2 filesystem/dev/hda2:  x86 boot sector/dev/hda3:  x86 boot sector, extended partition table/dev/hda4:  Linux/i386 ext2 filesystem/dev/hda5:  Linux/i386 swap file/dev/hda6:  Linux/i386 swap file/dev/hda7:  Linux/i386 swap file/dev/hda8:  Linux/i386 swap file/dev/hda9:  empty/dev/hda10: empty

这里,如果没有权限,执行不了。

描述

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

文件系统检查成功则输出文件类型. 输出的类型一般会包含以下的词中的一个: text (文件中仅有 ASCII 字符,可以用 ASCII 终端读此文件,以保证内容的可靠性), executable (文件中保存的是程序编译后的结果,一些UNIX 内核或其它内核能理解这类文件), 或者 data 表示所有其它类型文件( data 一般为二进制文件或者不可打印的). 有的常用的文件格式(如 core 文件、 tar 包),虽然也包含二进制数据,却不属于这一类。 可以修改如果要修改 /usr/share/magic 或者程序本身,以便针对这些关键字进行处理。当文件为 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 用于设置默认的幻数文件.

参看

magic(4) - 幻数文件的格式.

strings(1), od(1), hexdump(1) - 检查非textfile的工具.

标准的一致性

本程序(一般Linux上的?)比 System VFILE 命令强大, 几乎能分辨出所有的模糊语言. 与 System VFILE=命令大部分兼容.本版本能识别更多的 =magic, 但是,也将因此在有些情况下会产生不同输出(尽管更加精确).

本版本与System V的显著区别就是本版本对空格是作为分隔符来处理的, 所以不能在格式字符串中包含空格. 例如,现有幻数文件中的

>10    string  language impress        (imPRESS data)

要改为

>10    string  language\ impress       (imPRESS data)

另外, 格式字符串中的反斜线符号也要避免.例如,现有幻数文件中的

0      string          \begindata      Andrew Toolkit document

要改为

0      string          \\begindata     Andrew Toolkit document

SunOS releases 3.2及以后的版本包括从System V 发展来的 file(1) 命令,但有所扩展.本版本与Sun的file命令差别不大.它包括对 `&’ 操作符的扩展,例如,

>16    long&0x7fffffff >0              not stripped

MAGIC DIRECTORY

幻数文件项主要是从 USENET 收集来的,许多人都为此作出了贡献. Christos Zoulas (下边将提到的)将收集附加项信息及修正幻数文件项. 幻数文件项的合并表将会定时发布.

幻数文件项的顺序非常重要.不同的系统上的幻数项放的顺序可能不同. 如果老的 file 命令使用幻数文件,请将旧的幻数文件改名保存, (如改为 /usr/share/magic.orig) 以便日后做比较用.

其它参考资料

http://fanqiang.chinaunix.net/a1/b1/20020108/08100041.html

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux命令学习手册-file

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux命令学习手册-file

file [-beLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]功能辨识文件类型。举例检查文件类型$file file.c file /dev/hda输入之后,输出如下:file.c: C progr
2023-06-05

Linux命令学习手册-df

df -[选项] [文件...]功能检查文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。 df 命令可显示所有文件系统对i节点和磁盘块的使用情况。描述该命令各个选项的含义如下: -a 显示所
2023-06-05

Linux命令学习手册-awk

awk '条件类型1{动作1} 条件类型2{动作2} ...' filename功能相较于 sed 常常作用于一整个行的处理, awk 则比较倾向于一行当中分成数个『字段』来处理。描述awk 的处理流程读入第一行,并将第一行的资料填入 $0
2023-06-05

学习手册--Linux基础篇

目录1. linux系统介绍1.1 linux的概述1.2 linux的优势1.3 linux的分类1.4 常见的发行版linux系统2. Linux的安装3. Linux的基础篇3.1 目录结构3.1.1 那具体有哪些呢?3.1.2 需要
2022-06-04

学习Linux命令之history

这篇文章将为大家详细讲解有关学习Linux命令之history,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言你们有没有在使用linux开发时执行了很长的一条命令,然后过了一会要想在执行这条命令就需要重
2023-06-06

总结Linux 常用命令手册

非常实用的 Linux 命令手册,查看超级方便NO分类PS1命令名用法及参数功能注解1 文件管理# lsls -a列出当前目录下的所有文件,包括以.头的隐含文件文件管理# lsls -l或ll列出当前目录下文件的详细信息文件管理# pwdp
2022-06-03

Linux高级篇学习手册(一)

目录1. linux的用户管理 1.1 添加用户1.2 删除用户1.3 查询用户信息1.4 切换用户 1.5 对组操作2. Linux的文件权限2.1 查看资源的权限2.2 添加权限语法2.3 删除权限语法2.4 修改权限语法2.5 实现演
2022-06-04

Linux高级篇学习手册(二)

目录1. linux的crontab定时任务1.1 配置定时任务2. Linux的服务管理6.1 服务管理2.2 服务自启动2.3 演示效果总结1. Linux的crontab定时任务任务调度:是指系统在某个时间执行的特定的命令或程序。任务
2022-06-04

【Linux学习】Linux必备命令之cp命令详解

cp命令是Linux中的一个常用命令,用于将文件或目录复制到指定位置。下面是关于cp命令的一些详细解释和用法:1. 命令格式:cp [选项] 源文件 目标文件- 选项说明:- -r:复制目录及其子目录内容- -i:询问是否覆盖已存在的目标文
2023-09-09

学习一个 Linux 命令:ntpdate

ntpddate 命令用于使用网络计时协议(NTP)设置日期和时间。还可以用于同步时间,此命令需要具备root管理员权限才可执行。

学习一个Linux命令:pstree

pstree 命令以树状图的方式展现进程之间的派生关系。

学习linux常用命令(推荐)

一、文件系统的管理 tips:输入命令的时候要常用tab键来补全 ls 查看目录信息 ( ls / ) ls -l 等价于 llpwd 查看当前所处的路径 cd 切换目录 (cd /) ,如果不带参数则切换到用户主目录 ~ mkdir 创建
2022-06-04

Linux学习之mkdir命令详解

目录前言1. 文件概念基础知识2. mkdir命令前言 最近几天越来越对linux很感兴趣了, 想再见塔克斯的心情也是越来越浓烈, 自从它给我留了110110110之后,就没了联系。 到现在我也是一头雾水, 我又找不到它而且又没有联
2022-06-04

python学习手册.fist

# 1.注释    # 行注释  #        # print('****')    # 多行注释三个双引号或者单引号        '''print('****')           print('****')           
2023-01-31

linux命令学习之10个网络命令和监控命令

网络和监控命令类似于这些: hostname, ping, ifconfig, iwconfig, netstat, nslookup, traceroute, finger, telnet, ethtool 用于查看linux服务器ip地
2022-06-04

如何学习和理解Linux命令

这篇文章主要为大家展示了“如何学习和理解Linux命令”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何学习和理解Linux命令”这篇文章吧。1. ls命令首先ls命令,指列出目录内容(List
2023-06-16

Linux file命令的使用

1.命令简介 file命令用来识别文件类型,对文件的检查分为文件系统、魔法幻数检查和语言检查三个过程,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。 2.命令格式
2022-06-03
2024-04-02

编程热搜

目录