linux搜索查找指令:find | locate | which | grep
摘要
目的:展示搜索、查找指令
- find指令
- locate指令
- which指令
- 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的一行 | 可以查找文件 |