20

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

 4 years ago
source link: https://www.tuicool.com/articles/RN3yMfE
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

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

UNv6Vj3.jpg!web

1、命令 find

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

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

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

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

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

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

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

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

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

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

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

nq2mEjz.jpg!web

find命令操作

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

2、命令 grep

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

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

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

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

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

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

-i 忽略字符大小写。

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

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

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

22AbIfy.jpg!web

命令grep演示

3、文件类型查询命令

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

eyYbqqA.jpg!web

文件详细信息

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

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

d 目录文件。

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

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

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

s 套接字文件。

p 管道文件,主要指 FIFO 文件。

我们后面学习Linux 驱动开发的时候基本是在和字符设备文件和块设备文件打交道。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK