iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux基础命令---find
  • 147
分享到

Linux基础命令---find

2023-06-06 00:06:17 147人浏览 安东尼
摘要

file判断指定文件的文件类型,它依据文件内容判断,并不依据扩展名。此命令的适用范围:RedHat、RHEL、ubuntu、Centos、SUSE、openSUSE、Fedora。1、语法file [选项]  

file

判断指定文件的文件类型,它依据文件内容判断,并不依据扩展名。此命令的适用范围:RedHat、RHEL、ubuntuCentos、SUSE、openSUSE、Fedora。

1、语法

file [选项]  filename

 

2、选项列表

选项

说明

-v | --version

显示命令版本信息

--help

显示帮助文档

-b | --brief

列出结果的时候,不显示文件名

-C | --compile

编写一个magic.mGC输出文件,其中包含魔术文件或目录的预解析版本

-c | --checking-printout

以检查魔术文件的解析形式的打印输出。这通常与-m标志一起使用,用于在安装新的魔术文件之前调试它。

-e | --exclude testname

从确定文件类型的测试列表中排除在testname中指定的测试。有效的测试名称是:

apptype,EMX应用程序类型(仅在EMX上)。

text,各种类型的文本文件(此测试将尝试猜测文本编码,而不管“编码”选项的设置如何)

encoding,用于软魔术测试的不同文本编码

tokens,在文本文件中查找已知的令牌

cdf,打印复合文档文件的详细信息

compress,检查并查看压缩文件

elf,打印ELF文件的细节。

soft,查阅魔法档案。

tar,检查tar文件

-F | --separator

指定文件名和结果之间的分隔符,默认:

-f namefile | --files-from namefile

从给定的文件中,读取文件名,然后操作

-h | --no-dereference

选项导致符号链接不被遵循(在支持符号链接的系统上)。如果没有定义环境变量POSIXLY_TRIDER,则这是默认的

-i | --mime

导致文件命令输出MIME类型字符串,而不是更传统的人类可读的字符串。因此,它可以说‘text/plain;;charset=us-ascii’而不是‘ASCII文本’。为了使此选项工作,文件更改了它处理命令本身识别的文件的方式(例如许多文本文件类型、目录等),并使用了另一个“魔术”文件。(见下文档案部分)

--mime-type | --mime-encoding

类似-i,但只打印指定的元素。

k | --keep-Going

第一次匹配别停,继续。随后的匹配将具有字符串‘\012-’。(如果需要换行符,请参见‘-r’选项。)

-L | --dereference

选项导致符号链接被遵循,就像ls(1)中的同名选项(在支持符号链接的系统上)。如果定义了环境变量POSIXLY_TRIDER,则这是默认的

-m | --magic-file magicfiles

指定包含魔术的文件和目录的备用列表。这可以是单个项目,也可以是冒号分隔的列表。如果在文件或目录旁边找到已编译的魔术文件,则将使用它。

-N | --no-pad

让文件名在输出中对齐                           

-n | --no-buffer

检查每个文件后,强迫stdout被刷新。这只有在检查文件列表时才有用。它用于希望从管道输出文件类型的程序。

-p | --preserve-date

在支持utime(2)或utime(2)的系统上,尝试保留分析过的文件的访问时间,假装文件从未读取过它们。

-r | --raw

不要将不可打印的字符翻译为\ooo。通常,文件将不可打印的字符转换为它们的八进制表示形式

-s | --special-files

通常,文件只尝试读取和确定STAT(2)报告是普通文件的参数文件的类型。这可以防止出现问题,因为读取特殊文件可能会产生特殊的后果。指定-s选项会导致file也读取参数文件,这些参数文件是块文件或字符特殊文件。这对于确定原始磁盘分区中数据的文件系统类型非常有用,这些分区是块特殊文件。此选项还会导致文件忽略stat(2)所报告的文件大小,因为在某些系统上,它报告原始磁盘分区的大小为零。

-z | --uncompress

试着查看压缩文件

-0 | --print0

在文件名结束后输出空字符‘\0’。很好地削减了产量。这不影响仍然打印的分隔符。

-z

尝试读取压缩文件的内容

 

3、说明

file对每个参数进行测试,试图对其进行分类。按照这个顺序执行的测试有三组:文件系统测试、魔术测试和语言测试。成功的第一个测试将导致打印文件类型。打印的类型通常包含一个单词text(该文件只包含打印字符和几个常见的控制字符,并可能安全地在ASCII终端上读取)、executable (该文件包含以某种UNIX内核可以理解的形式编译程序的结果),或包含任何其他含义的data(数据通常是“二进制”或不可打印的)。异常是众所周知的包含二进制数据的文件格式(核心文件、tar存档).在修改魔术文件或程序本身时,请确保保留这些关键字。用户依赖于知道目录中的所有可读文件都打印了单词“text”。不要像Berkeley那样,把“shell命令文本”改为“shell脚本”

文件系统测试基于检查STAT(2)系统调用的返回。该程序检查该文件是否为空文件,或是否为某种特殊文件。如果在系统头文件中定义了适合您正在运行的系统的任何已知文件类型(套接字、符号链接或有名管道),则会直观地显示它们。

魔术测试用于检查具有特定固定格式的数据的文件。这方面的典型示例是二进制可执行文件(已编译的程序)a.out文件,其格式在标准include目录中的#include<a.out.h>中定义,或者#include <exec.h>。这些文件具有一个“魔术号”,存储在文件开头附近的某个特定位置,该位置告诉UNIX操作系统该文件是二进制可执行文件,以及其中的几种类型中的哪一种。“魔术”的概念已经通过扩展应用于数据文件。任何在一个小的固定偏移量处具有一些不变标识符的文件通常都可以用这种方式来描述。标识这些文件的信息是从已编译的魔术文件/usr/share/misc/magic.mgc中读取的,如果编译的文件不存在,则从/usr/share/misc/magc目录中读取这些文件。此外,如果$HOME/.magic.mgc或$home/.magic存在,则它将优先用于系统魔术文件。如果/etc/magic存在,它将与其他魔术文件一起使用。

如果文件与魔术文件中的任何条目不匹配,则检查它是否为文本文件。ASCII、ISO-8859-x、非ISO 8位扩展-ASCII字符集(例如在Macintosh和IBM PC系统上使用的字符集)、UTF-8编码Unicode、UTF-16编码Unicode和EBCDIC字符集可以通过构成每组可打印文本的不同范围和字节序列来区分。如果一个文件通过了这些测试中的任何一个,就会报告它的字符集。ASCII、ISO-8859-x、UTF-8和Extended-ASCII文件被识别为“Text”,因为它们在几乎任何终端上都是可读的;UTF-16和EBCDIC仅仅是“字符数据”,因为它们包含文本,但是文本需要翻译才能被读取。此外,文件将试图确定文本类型文件的其他特征.如果文件的行被CR、CRLF或Nel终止,而不是Unix标准LF,这将被报告。还将识别包含嵌入转义序列或过度醒目的文件。

一旦文件确定了在文本类型文件中使用的字符集,它将试图确定该文件是用哪种语言编写的。语言测试寻找特定的字符串(Cf. #include<names.h>),它可以出现在文件的前几个块中的任何地方。例如,关键字.br表示文件很可能是troff(1)输入文件,正如关键字struct表示C程序一样。这些测试不如前两组可靠,因此它们是最后执行的。语言测试例程还测试一些混类(例如tar(1)存档)。

任何无法标识为已在上述任何字符集中写入的文件,都被简单地称为“data”。

 

4、环境变量

环境变量MAGIC可以用来设置默认的魔术文件名。如果设置了该变量,那么文件将不会尝试打开$HOME/.magic。文件酌情将‘.mgc’添加到此变量的值中。环境变量POSIXLY_RIDER控制(在支持符号链接的系统上),文件是否会尝试遵循符号链接。如果设置了,那么文件将遵循符号链接,否则就不会。这也是由-l和-h选项控制的。

 

5、返回值

文件在成功时返回0,在错误时返回非零。如果文件操作数命名的文件不存在,无法读取,或者无法确定由文件操作数命名的文件的类型,则不认为这是影响退出状态的错误。

 

6、文件

/usr/share/misc/magic.mgc,默认已编译魔术列表。

/usr/share/misc/magic,包含默认魔术文件的目录。

 

7、实例

1)直接查看文件 

[root@localhost weijie]# file 1.c

1.c: ASCII text         //默认分隔符是冒号

[root@localhost weijie]# file -F , 1.c         //指定分隔符为逗号

1.c, ASCII text

2)从给定文件中读取文件名,然后进行操作 

[root@localhost weijie]# cat 1.c

2.c

3.c

 

[root@localhost weijie]# file -f 1.c         //1.c读取文件内容,将他们作为文件名重新进行file操作。

2.c: ASCII text

3.c: ASCII text

3)读取特殊文件的类型

file -s /dev/wd0{b,d}

/dev/wd0b: data

/dev/wd0d: x86 boot sector

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

4)以MIME格式输出 

$ file -i file.c file /dev/{wd0a,hda}           //输出MIME类型

file.c:      text/x-c

file:        application/x-executable

/dev/hda:    application/x-not-regular-file

/dev/wd0a:   application/x-not-regular-file

--结束END--

本文标题: Linux基础命令---find

本文链接: https://www.lsjlt.com/news/245335.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Linux基础命令---find
    file判断指定文件的文件类型,它依据文件内容判断,并不依据扩展名。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法file [选项]  ...
    99+
    2023-06-06
  • Linux基础命令---apachectl
    apachectlapachectl指令是apache http服务器的前端控制程序,可以协助控制apache服务的守护进程httpd。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fed...
    99+
    2023-06-05
  • Linux基础命令---more
    more将内容较长的文本文件内容分屏显示,支持定位关键字。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、语法more [-dlfpcsu] ...
    99+
    2023-06-05
  • Linux基础命令---gunzip
    gunzip解压缩被gzip压缩过的文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法gunzip [-acfhlLnNrtvV]  ...
    99+
    2023-06-05
  • Linux基础命令---sort
    sort以行为单位,对文本文件进行排,并输出排序结果。默认情况下,以每一行为一个单位,从首字符开始按照ASCII码向后逐个比较。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。...
    99+
    2023-06-06
  • Linux基础命令---mknod
    mknod创建块设备或者字符设备文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、语法mknod [选项]  设备名 ...
    99+
    2023-06-06
  • Linux基础命令(3)
    十二 lsof命令简介lsof(list open files) 是一个列出当前系统打开文件的工具。在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 如传输控制协议 (TCP) ...
    99+
    2023-01-31
    命令 基础 Linux
  • linux命令基础(3)
    find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。find的使用格式如下:find <指定目录> <指定条件> <指定动作>- <指定目录>: 所要搜索的目录及其所有子目录。...
    99+
    2023-01-31
    命令 基础 linux
  • Linux基础命令- history
    Linux基础命令- history 1.history 显示历史命令 作用:用于显示历史记录和执行过的指令命令 当登录shell或者是退出的时候会自动进行读取和存储 1.常用参数 语法:# history 选项 参数#参数-n ...
    99+
    2023-08-22
    linux 运维 服务器
  • Linux基础命令---mysql
    mysqlmysql是一个简单的sql shell,它可以用来管理mysql数据库。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora。 1、语法mysql [options] ...
    99+
    2023-06-05
  • Linux基础命令---csplit
    csplit将文件按照指定的模式分割,默认的输出文件名是xx00、xx01、xx02等,指令会显示每个输出文件的大小。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法c...
    99+
    2023-06-05
  • Linux基础命令---zcat
    zcat解压有gzip压缩的文件,将解压结果送到标准输出。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法zcat [-fhVL] 文件 ...
    99+
    2023-06-05
  • Linux基础命令---zip
    zipzip是一种最通用的文件压缩方式,使用于unix、msdos、windows、OS等系统。如果在编译zip时包含bzip 2库,zip现在也支持bzip 2压缩。当将大于4GB的文件添加到存档中时,zip会自动使用Zip 64扩展名,...
    99+
    2023-06-06
  • Linux基础命令---ar
    arar指令可以创建、修改库,也可以从库中提取单个模块。库是一个单独的文件,里面包含了按照特定结构组织起来的其他文件,我们称作member。归档文件通常是一个二进制文件,我们一般将归档文件当作库来使用。原始文件的内容、模式(权限)、时间戳、...
    99+
    2023-06-06
  • Linux基础命令---date
    date以给定的格式显示当前的日期,或者设置系统时间。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法date [选项]。date [+格式]。da...
    99+
    2023-06-06
  • Linux基础命令--slabtop
    slabtopslabtop实时显示详细的内核板条缓存信息。它显示按所列排序条件之一排序的顶级缓存的列表。它还会显示一个统计信息头,其中填充了板坯层信息。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、Fedora、S...
    99+
    2023-06-05
  • Linux基础命令---bzip2
    bzip2使用Burrows-Wheeler块排序文本压缩算法,将文件进行压缩,压缩比率比一般算法高一些。bzip2要求命令行标志附带一个文件名列表。每个文件都被自己的压缩版本替换,名称为“original_name.bz2”。每个压缩文件...
    99+
    2023-06-05
  • Linux基础命令---head
    head显示文件开头的几行,默认显示10行,可以使用选项-n来指定行数。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法head [选项] &nbs...
    99+
    2023-06-06
  • Linux基础命令---bunzip2
    bunzip2解压缩bzip2压缩过的文件。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法bunzip2 [-fkvsVL]  文件&n...
    99+
    2023-06-06
  • Linux基础命令---gzexe
    gzexe压缩可执行文件,在执行程序的时候可以自动实现解压。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。1、语法gzexe file 2、选项列表选项说...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作