Linux命令操作——常用查询指令介绍

前言

日期:2020/05/16
心情:????????????
Description:查询指令是Linux里面最重要的命令之一,它有着强大的查询功能。下面介绍三种常用查询文件的指令(find、locate、grep)。



1. find指令

find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。

find的使用格式如下:

$ find <指定目录> <指定条件> <指定动作> - <指定目录>
(所要搜索的目录及其所有子目录。默认为当前目录。)

  • <指定条件>: 所要搜索的文件的特征。

  • <指定动作>: 对搜索结果进行特定的处理。

效果: 从指定的搜索范围向下以递归的形式遍历其所有的子路径,将满足搜索条件的文件或者目录显示出来

常用选项:

  • name 按文件名称查找
  • user 按文件所属用户的名称查找
  • size 按文件大小进行查找.

如果什么参数也不加,find默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

find的使用实例:

  • $ find . -name “my*” 搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。

  • $ find . -name “my*” -ls 搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。

  • $ find . -type f -mmin -10 搜索当前目录中,所有过去10分钟中更新过的普通文件。如果不加-type f参数,则搜索普通文件+特殊文件+目录。

案例:

  • 案例1: 查找/home目录下的info.txt文件.
    Linux命令操作——常用查询指令介绍

  • 案例2: 查找/home目录下属于tom用户的文件
    Linux命令操作——常用查询指令介绍

  • 案例3: 查找/opt目录下,文件大小大于50M的文件
    Linux命令操作——常用查询指令介绍
    注意: 当选项为-size时,表示按文件大小进行搜索.使用+表示搜索大于指定范围,-表示小于指定范围,没有符号表示等于指定范围.M表示单位为mb,k表示单位为kb

  • 案例4: 查找/home目录下,所有的.txt文件(*表示任意个字符,?表示单个字符)
    Linux命令操作——常用查询指令介绍
    注意: 建议使用通配符查找某个目录中对应的文件时,要位于该目录的上一级目录


2. locate指令

locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含 有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可 以在使用locate之前,先使用updatedb命令,手动更新数据库。

基本语法: locate 搜索的文件

效果: locate指令可以快速的定位文件的路径,利用事先建立的locate数据库实现快速定位文件.该指令无需遍历整个文件系统,查询速度快.为了保证准确度,需要定期更新locate时刻.在第一次使用前,使用updatedb指令创建数据库.(上面有详细说明了)

locate命令的使用实例:

  • $ locate /etc/zh 搜索etc目录下所有以zh开头的文件。

  • $ locate ~/b 搜索用户主目录下,所有以b开头的文件。

  • $ locate -i ~/n 搜索用户主目录下,所有以n开头的文件,并且忽略大小写。

案例:

  • 案例1: 快速定义为apple.txt文件所在的目录
    Linux命令操作——常用查询指令介绍

3. grep指令 和 管道符 ‘|’

基本语法: 前置指令 | grep [选项] 查找内容

效果: grep指令表示对结果进行过滤查找,管道符”|”表示将一个指令的处理结果输出给后面的命令使用.

常用选项:

  • -n 显示行号
  • -i 忽略大小写

案例:

  • 案例1: 在Teacher01.java文件中,查找”name”字符串所在的行,并显示行号.
    Linux命令操作——常用查询指令介绍



总结:上述的3个查找命令是Linux命令比较常用的,文章主要是记录学习内容笔记,也是提供给初学还有我自己后续的回顾使用,如果看了本文能够学习到东西,或者说可以帮助到您,也是再好不过了。我是小白,养成爱做笔记的好习惯,总有一天成为大佬!一起努力!