Linux基础知识(4): 文件搜索命令


注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/105849663


1 文件搜索——locate

lacate命令用于文件搜索,其格式为:

locate [文件名]

举例说明

在这里插入图片描述

  1. 在后台数据库中按文件名搜索,搜索速度更快。
  2. locate命令所搜索的后台数据库的路径为: /var/lib/mlocate
    对于新建文件,使用locate命令查询不到时,需要使用updatedb命令进行更新,然后再使用locate命令查询。
  3. 对于updatedb配置文件规则如下:

在这里插入图片描述



2 命令搜索——whereis与which

whereis命令是搜索命令所在路径及帮助文档所在位置,其格式为:

whereis [选项] [命令名]

其中参数选项机器作用如下:
-b 表示只查找可执行文件;
-m 表示只查找帮助文件;

注:whereis命令只能搜索系统命令。


举例说明

在这里插入图片描述


which命令查询系统命令所在位置,也可以查看该命令的别名

在这里插入图片描述


注:例如使用ls命令查询所有文件时并没有加入路径,是因为PATH环境变量定义了系统搜索命令的路径。如下图所示,系统搜索命令的路径有以下几种。如果自己写的程序不加路径直接进行搜索会报错,除非在PATH中添加路径。


在这里插入图片描述



3 文件名搜索——find命令

locate只能搜索文件名,而whereis和which只能搜索系统命令。
在Linux系统中,搜索工作一般都是通过find命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上。
find命令一般格式为:

find [查找路径] 寻找条件 操作

find命令的参数及其作用如下图所示:

在这里插入图片描述


下面举例说明:

(1) find / -name 文件名

find命令搜索使用 –name可以避免大范围搜索导致系统资源。一般使用find命令搜索文件名时,可以使用通配符匹配(通配符是完全匹配)。

Linux中的通配符有:

* 表示匹配任意内容;
? 表示匹配任意一个字符;
[] 表示匹配任意一个中括号内的字符;

在这里插入图片描述



(2) find /root -iname文件名
表示不区分大小写



(3) find /root –user root
表示按照所有者搜索



(4) find /root -nouser
表示查找没有所有者的文件。

对于没有所有者的文件有两种情况:

  1. 内部文件:系统内核产生的没有所有者文件;
  2. 外部文件:例如在windows电脑拷贝的数据、U盘、硬盘等数据均为外部数据,这些数据可能是没有所有者文件呢。



(5) find /var/log/ -mtime +10
表示查找10天前修改的文件

其中,+10参数可以进行修改,例如:
-10 表示查找10天内修改的文件;
10 表示查找10天当天修改的文件;
-10 表示查找10天前修改的文件;

-atime 表示文件访问时间;
ctime 表示改变文件属性;
mtime表示修改文件内容;



(6) find 路径 -size 25k
表示查找文件大小是25KB的文件

其中,25k参数可以进行修改,例如:
-25k 表示查找小于25KB的文件;
25k 表示查找等于25KB的文件;
+25k 表示查找大于25KB的文件;



(7) find 路径 –inum 262422
表示查找i节点是262422的文件

在这里插入图片描述


在这里插入图片描述



(8) find /etc -size +20k –a -size -50k
表示查找/etc/目录下,大于20KB且小于50KB的文件

其中,参数:
-a 表示逻辑与(and)
-o 表示逻辑或(or) 

例如命令:find /etc -size -20k –o –size +50k
表示查找/etc/目录下,小于20KB或大于50KB的文件。



(9) find /etc -size +20k –a –size -50k -exec ls -lh {} ;
表示查找/etc/目录下,大于20KB且小于50KB的文件,并且显示详细信息。
其中命令: -exec 选项 {} ; 表示对搜索结果进行下一步操作。{}表示find命令搜索出的每一个文件,并且命令的结尾必须是“;”
例如:find / -user sb -exec cp -a {} /root/findresults/ ;
表示在整个文件系统中找出所有归属于sb用户的文件并复制到/root/findresults目录下。

在这里插入图片描述



4 字符串搜索——grep

grep命令用于在文本中执行关键词搜索,并显示匹配的结果,其格式为:

grep [选项] [文件]

grep命令的参数选项及其作用如下所示:

-i 表示忽略大小写;
-v 表示排除指定字符串;
-b 表示将可执行文件(binary)当作文本文件(text)来搜索;
-c 表示仅显示找到的行数;
-v 表示反向选择—仅列出没有“关键词”的行;

举例说明:

在这里插入图片描述



find命令与grep命令的区别

  1. find命令:在系统中搜索符合条件的文件名。如果需要匹配,使用通配符进行匹配,通配符是完全匹配。
  2. grep命令:在文件中搜索符合条件的字符串。如果需要匹配,使用正则表达式进行匹配,正则表达式包含匹配。
原创文章 191 获赞 2064 访问量 101万+

猜你喜欢

转载自blog.csdn.net/zaishuiyifangxym/article/details/105856510