13第六章:【04】常用指令-搜索查找
一、find 查找文件或者目录
find 命令 用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件或者目录显示在终端。
1、基本语法
find [搜索范围] [选项]
参数
搜索范围]:查找文件的起始目录
选项说明
2、应用案例
案例 1: 按文件名:根据名称查找/home 目录下的 hello.txt 文件
案例 2:按拥有者:查找/opt 目录下,用户名称为 nobody 的文件
案例 3:查找整个 linux 系统下大于 20M 的文件(+n 大于 -n 小于 n 等于)
1m = 1024k
案例 4:查询 / 目录下,所有 .txt 的文件
二、locate 快速定位文件路径
locaate 指令可以快速定位文件路径。locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate
指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
1、基本语法
locate 搜索文件
特别说明:由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库。
2、应用案例
案例 1: 请使用 locate 指令快速定位 hello.txt 文件所在目录
三、which 查找命令
which 命令 用于查找并显示给定命令的绝对路径,环境变量 PATH 中保存了查找命令时需要遍历的目录。which 指令会在环境变量$PATH 设置的目录里查找符合条件的文件。也就是说,使用 which
命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which(选项)(参数)
选项:
-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;
-w:指定输出时栏位的宽度;
-V:显示版本信息
参数:
指令名:指令名列表
查找文件、显示命令路径:
[root@localhost ~]# which pwd
/bin/pwd
[root@localhost ~]# which adduser
/usr/sbin/adduser
说明:which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!
[root@localhost ~]# which cd
cd: shell built-in command
cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是 bash 内建的命令! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的!
四、grep 过滤查找及“|”管道符
grep 过滤查找
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
1、基本语法
grep 选项 查找内容 源文件
选项说明
2、应用实例
案例 1: 请在 hello.txt 文件中,查找 “yes” 所在行,并且显示行号