查询文件类型的命令file

功能:查询文件类型
语法:file [选项] [文件名]
说明:使用file命令可以知道某个文件究竟是二进制的可执行文件还是shell脚本文件,或者是其他的格式。File能识别的文件类型有目录、shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件等。
选项说明:
-v:在标准输出后显示版本信息,并且退出
-z:探测压缩过的文件类型
-L:允许符合链接
-f name:从文件namefile中读取要分析的文件名列表。
例如:查看当前目录下所有文件类型。 file *

列出文件系统内符合条件的文件的命令find

功能:将文件系统内符合条件的文件列出来,可以指定文件的名称、类别、时间、大小、权限等不同信息的组合,只有完全相符的文件才会被列出来。
语法:find [路径] [选项] [-print]
-name:按照文件名来查找文件
-perm:按照文件权限来查找文件
-user:按照文件属主来查找文件
-group:按照文件所属的组来查找文件
-cmin n:在过去n分钟内被修改过的文件
-ctime n:在过去n天内被修改过的文件
-size n:大小为n的文件
-type:查找某一类型的文件,在查找时可以定义不同的文件类型

例1:查找/boot目录下的启动菜单配置文件grub.cfg。
find /boot -name grub.cfg -print
例2:查找/boot目录下所有以“cfg”为扩展名的文件。
find /boot -name “*.cfg” -print
例3:列出当前目录及其子目录下所有最近10min内更新过的文件。
find . –ctime -10

查找文件里符合条件字符串的命令grep

功能:查找文件里符合条件的字符串。
语法:grep [选项] [查找模式] [文件名]
选项说明:
-E:每个模式作为一个扩展的正则表达式对待
-F:每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式
-b:在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量
-c:只显示匹配行的数量
-I(大写i):比较时不区分大小写
-h:在查找多个文件时,指示grep不要将文件名加入到输出之前
-l:显示首次匹配串所在的文件名并用换行符将其隔开,当在某文件中多次出现匹配串时,不重复显示此文件名
-n:在输出前加上匹配串所在行的行号(文件首行行号为1)
-v:只显示不包含匹配串的行
-x:只显示整行严格匹配的行
-e:expression指定检索使用的模式,用于防止以“-”开头的模式被解释为命令选项
-f:expfile从expfile文件中获取要搜索的模式,一个模式占一行

例1:从hello.c文档中查出main这个单词,并返回所有包含main的整行内容
grep “\bmain\b”hello.c
(其中\b指一个单词的开头或结尾,是一个元字符。)
例2:从hello.c文档中查出main这个单词,并返回满足条件的行的数量
grep -c “\bmain\b”hello.c