linux搜索查找指令:find | locate | which | grep

发布时间 2023-07-27 21:24:06作者: Crispy·Candy

摘要

目的:展示搜索、查找指令

  1. find指令
  2. locate指令
  3. which指令
  4. grep过滤指令

一、find指令

find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。

指令 功能 说明 选项
find /root -name hello.txt 从root目录下递归遍历各个子目录,查找hello.txt 如果从/根目录开始查找的话,那么遍历所有文件,效率太低
最终找到的只有hello.txt,名字与参数完全一致
-name 根据文件名称查找
find /opt -user user1 从opt目录下查找各个子目录,查找到user1的文件 -user 根据用户查找
find / -size +200M 从根目录下查找文件大小大于200M的文件 +n:表示大于n
-n:表示小于n
n:表示等于n
单位有K M G T等
-size 根据文件大小查找

可以使用 ll -h查看文件大小

二、locate指令

  • locate指今可以快速定位文件路径。
  • locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。
  • locate指令无需遍历整个文件系统,查询速度较快。
  • 为了保证查询结果衔准确度管理员必须完期更新locate时刻(updatedb),否则可能找不到全部的文件
指令 功能 说明 选项
yum install mlocate locate命令执行之前需要的指令
updatedb 更新locate所需要的数据库 必须在locate之前调用
locate a.txt 定位a.txt 查找到的文件是 包含 a.txt的,不是只有 a.txt
这个的速度很快

三、which指令

指令 功能 说明 选项
which ls 查找ls指令所在的目录

四、grep指令

grep过滤查找,管道符,"I",表示将前一个命令的处理结果输出传递给后面的命令处理。

指令 功能 说明 选项
`cat a.txt grep "hello"` 查看a.txt并且只显示有hello的一行
`cat a.txt grep "hello" grep "world"` 查看a.txt并且只显示有hello和world的一行
`cat a.txt grep -n "hello"` 显示行号
`cat a.txt grep -i "hello"` 匹配时不管大小写
`ps -aux grep "rsyslogd" grep -v "grep"` 查找rsyslogd进程,但是不包括grep的一行
grep "password" hello.txt 查看hello.txt中含有password的一行 可以查找文件