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

系统 Linux
文件的查询和搜索也是最常用的操作,在嵌入式 Linux 开发中常常需要在 Linux 源码文件中查询某个文件是否存在,或者搜索哪些文件都调用了某个函数等等。

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

[[280184]]

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 套接字文件。

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

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

责任编辑:武晓燕 来源: 今日头条
相关推荐

2009-08-03 09:09:49

find命令详解find命令目录结构

2013-11-27 15:31:21

Chrome搜索语音命令

2010-03-18 16:38:39

Linux命令

2020-06-16 14:11:48

find命令文件查找

2024-03-01 20:28:54

CentOS 7文件操作search

2011-01-11 14:17:29

Linux文件目录

2009-07-01 14:32:37

JSP文件操作

2022-11-02 09:44:20

Linux运维json

2012-05-10 08:37:54

Linuxxargs

2012-05-11 10:07:55

Linuxfind

2012-05-10 08:46:05

Linuxsort命令

2011-01-11 15:44:08

2010-03-18 16:31:32

Linux命令

2017-04-25 15:50:02

sparse传输处理

2009-12-10 14:27:07

Linux操作系统

2023-09-27 23:19:04

Linuxmount

2012-05-10 08:55:11

Linuxuniq

2009-07-31 16:14:27

linux cd命令Linux基本命令

2023-06-24 10:44:34

Linux文件搜索

2010-03-18 15:07:13

Linux操作系统
点赞
收藏

51CTO技术栈公众号