Linux文件操作之文件查询与搜索命令详解

文件的查询和搜索也是最常用的操作,在嵌入式 Linux 开发中常常需要在 Linux 源码文件中查询某个文件是否存在,或者搜索哪些文件都调用了某个函数等等。本节我们就讲解两个最常用的文件查询和搜索命令:find 和 grep。

Linux文件操作之文件查询与搜索命令详解

1、命令 find

find 命令用于在目录结构中查找文件,其命令格式如下:

  1. find [路径] [参数] [关键字] 

路径是要查找的目录路径,如果不写的话表示在当前目录下查找,关键字是文件名的一部分,主要参数如下:

-name 按照文件名称查找,查找与 filename 匹配的文件,可使用通配符。

-depth 从指定目录下的最深层的子目录开始查找。

-gid<群组识别码> 查找符合指定的群组识别码的文件或目录。

-group<群组名称> 查找符合指定的群组名称的文件或目录。

-size<文件大小> 查找符合指定文件大小的文件。

-type<文件类型> 查找符合指定文件类型的文件。

-user<拥有者名称> 查找符合指定的拥有者名称的文件或目录。

find 命令的参数有很多,常用的就这些,关于其它的参数大家可以自行上网查找,我们来看一下如何使用find 命令进行文件搜索,我们搜索目录/etc 中以“vim”开头的文件为例,操作如图所示:

Linux文件操作之文件查询与搜索命令详解

find命令操作

从图中可以看出,在目录/etc 下,包含以“vim*”开头的文件有/etc/vim、/etc/vim/vimrc等等,就不一一列出了。

2、命令 grep

find 命令用于在目录中搜索文件,我们有时候需要在文件中搜索一串关键字,grep 就是完成这个功能的,grep 命令用于查找包含指定关键字的文件,如果发现某个文件的内容包含所指定的关键字,grep 命令就会把包含指定关键字的这一行标记出来,grep 命令格式如下:

  1. grep [参数] 关键字 文件列表  

grep 命令一次只能查一个关键字,主要参数如下:

-b 在显示符合关键字的那一列前,标记处该列第 1 个字符的位编号。

-c 计算符合关键字的列数。

-d<进行动作> 当指定要查找的是目录而非文件时,必须使用此参数!否则 grep 指令将回报信息并停止搜索。

-i 忽略字符大小写。

-v 反转查找,只显示不匹配的行。

-r 在指定目录中递归查找。

比如我们在目录/usr 下递归查找包含字符“Ubuntu”的文件,操作如图所示:

Linux文件操作之文件查询与搜索命令详解

命令grep演示

3、文件类型查询命令

在用户根目录下使用命令“ls-l”来查看用户根目录下所有文件的详细信息,如图所示:

Linux文件操作之文件查询与搜索命令详解

文件详细信息

在图中,每个文件的详细信息占一行,每行最前面都是一个符号就标记了当前文件类型,比如test1 的第一个字符是“d”,test1.tar.bz2 文件第一个字符是“-”。这些字符表示的文件类型如下:

- 普通文件,一些应用程序创建的,比如文档、图片、音乐等等。

d 目录文件。

c 字符设备文件,Linux 驱动里面的字符设备驱动,比如串口设备,音频设备等。

b 块设备文件,存储设备驱动,比如硬盘,U 盘等。

l 符号连接文件,相当于Windwos 下的快捷方式。

s 套接字文件。

相关推荐