导航:首页 > 操作系统 > linux中file

linux中file

发布时间:2023-10-26 12:27:27

1. linux file命令详解

linux系统下file命令用于查询文件类型。平时我们判定一个文件的类型通常是通过该文件的扩展名,而file命令是通过详细阅读文件内容,找到特征量来判定文件类型。下面是file命令的具体内容:
1、file命令判定文件类型的顺序:
查询Device,Directory,Symbolic等特殊文件
查询压缩文件
查询tar文件
基于Magic数据库文件的查询
查询ASCII,UNICODE等类型的文本文件
如果以上都不符合,则文件为二进制文件
2、原理:
file命令通过读取保存着各种文件特性的数据库信息和被判定文件进行匹配,数据库文件保存在/etc/magic、/usr/share/misc/file/magic或其他位置。
0string\177ELFELF
>4byte0invalidclass
>4byte132bit
>5byte1LSB
>>16leshort2executable
3、magic文件由4部分组成:
偏移量
数据类型

输出字符串
magic文件的更多格式信息可以通过manmagic来查看。

以上就是小编今天的分享了,希望可以帮助到大家。

2. linux file命令

file [-beLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
【功能】
辨识文件类型。
【举例】
*检查文件类型:
$ file file.cfile /dev/hda
输入之后,输出如下:
file.c: C program text
file: ELF 32-bit LSB executable, Intel 80386,version 1,
dynamically linked, notstripped
/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
这里,如果没有权限,执行不了。
【描述】
ile 命令的使用. 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 用于设置默认的幻数文件.
参看
magic(4) - 幻数文件的格式.
strings(1), od(1),hexmp(1) - 检查非textfile的工具.
标准的一致性
本程序比System V 的FILE命令强大, 几乎能分辨出所有的模糊语言. 与System V 的FILE命令大部分兼容.本版本能识别更多的magic, 但是,也将因此在有些情况下会产生不同输出(尽管更加精确).
本版本与System V的显着区别就是本版本对空格是作为分隔符来处理的, 所以不能在格式字符串中包含空格. 例如,现有幻数文件中的
>10 string language impress (imPRESSdata)
要改为
>10 string language\ impress (imPRESSdata)
另外, 格式字符串中的反斜线符号也要避免.例如,现有幻数文件中的
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) 以便日后做比较用.

3. linux查看当前进程的nofile

您好,在Linux操作系统中,nofile是指当前进程打开的最大文件描述符数量。要查看当前进程的nofile,可以使用以下命令:

1. 使用命令“ulimit -n”可以查看当前用户的nofile限制。如果该值不够大,可以使用“ulimit -n <number>”来尘改增加nofile限制。

2. 使用命令“cat /proc/<pid>/limits”可以查看指定进程的nofile限制。其中,<pid>为要查看的进程的进程ID。

3. 使用命令“cat /proc/<pid>/status | grep Nofiles”可以查看指定进程打开的文件描述符数量。其中,<pid>为要查看的进程的进程ID。

4. 使用命令“lsof -p <pid> | wc -l”可以查看指定进程丛李打开的文件数量。其中,<pid>为要查看的进程的进程ID。

以上是查看当前进程派郑判的nofile的几种方法,可以根据实际情况选择合适的方法进行查看。

阅读全文

与linux中file相关的资料

热点内容
香港哪里有app卖内地零食 浏览:674
编译内核找不到工具链 浏览:447
java常见模式 浏览:500
典欣空调压缩机 浏览:421
app如何认定权限 浏览:849
两个复数相除的角度计算法则 浏览:584
电商类app开发怎么收费 浏览:300
打造电子书反编译工具 浏览:74
压缩比115 浏览:560
pdf怎么抠图 浏览:864
霍妮pdf 浏览:808
反编译VMP 浏览:49
hello编译器 浏览:771
apk程序加密 浏览:595
如何给app重命名 浏览:604
怎么幽默调侃程序员 浏览:285
忘记密码解压视频 浏览:913
运城机场春运加密 浏览:287
安卓手机如何关闭app后台 浏览:154
安卓数字密码忘记怎么破解 浏览:253