8.7 搜索查找类
8.7.1 find查找文件或目录
find 指令将从指定目录向下递归地遍历其各个子目录,将满足的文件显示在终端。
1)基本语法
find [搜索范围] [选项]
2)选项说明
| 选项 | 功能 |
|---|---|
| -name<查询方式> | 按照指定的文件名查找模式查找文件 |
| -user<用户名> | 查找属于指定用户名的所有文件 |
| -size<文件大小> | 按照指定的文件大小查找文件,单位为:b---块(512字节) c---字节 w---字(2字节) k---千字节 M---10^6字节 G---10^9字节 |
3)示例
按文件名:根据名称查找/root 目录下的 .log文件
find /root -name "*.log"

按拥有者:查找/opt目录下,用户为 root的文件
find /opt -user root

按文件大小:在/home目录下查找大于20M的文件(+n 大于 -n小于 n等于)
find /home -size +20M

8.7.2 locate 快速定位文件路径
locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。Locate指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。
1)基本语法
locate 搜索文件
2)经验技巧
由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
3)示例
updatedb
locate myroot

which ls 查找命令的位置

8.7.3 grep 过滤查找 和 | 管道符
管道符 | 表示将前一个命令的处理结果输出传递给后面的命令处理
1)基本语法
grep 选项 查询的关键字 源文件
2) 选项说明
| 选项 | 功能 |
|---|---|
| -n | 显示匹配行和行号 |
3)示例
查找某文件在第几行
grep -n boot anaconda-ks.cfg

ls | grep -n 222.txt

cat 222.txt | wc 222.txt有27行,27个单词,520个字符

