linux之文件快速搜索locate命令

技术文档网 2021-04-25

一、基本用法

locate [options] pattern

locate查找文件比find快得多多得多,工作中一些简单快捷的查询应该尽量使用locate,如果locate找不到,则再使用find,locate不是实时的,依赖一个数据库,这个数据库一般是每天一更新,可以使用updatedb来更新数据库。

locate后面的pattern如果没有出现通配符,则系统默认在前后加上*号, 例如 locate showd.log 相当于 locate '*showd.log*',只要出现一个通配符,系统就不加*号了,这点儿要注意

locate还可以使用正则表达式,需要加上-r选项,具体的看locate的man page

二、加引号和不加引号的区别

详见:linux之命令加单引号和不加的区别

假设系统中有如下的文件

/home/work/showd.log
/home/work/showdiff.sh
/home/work/cmsv2/mysqldump/showd.log
/home/work/view2/app/showd.dump
/home/work/view2/app/showd.log
/home/work/view2/app/showd.php
/home/work/view2/app/showd.sh

我们在/home/work/下执行:

locate show*

则只会查找到

/home/work/showdiff.sh

原因是,shell会对*号进行处理,把*替换为当前目录下的showdiff.sh,所以相当于执行locate showdiff.sh

接着继续执行:

locate 'show*'

则什么也没有找到,说明是把当前的*号,作为通配符了,因为locate命令如果没有通配符支持的话,则必须写全路径,例如locate /home/work/view2/app/showd.sh,但是这样其实就没有什么用了,我们连路径和文件名都知道,就没必要查找这个文件了 所以要想起作用,就需要前后都加*号,即

locate '*show*'

才能列出来所有的含有show的文件。

由于这个原因,执行

locate show

就相当于执行locate '*show*'

相关文章

  1. wget批量下载gitlab uploads的文件和图片

    背景 下载gitlab的uploads文件,因为wiki可以直接clone,但是上传的文件和图片却无法下载(除非你有gitlab的服务器权限) 之前尝试用写Java工具下载 遍历所有的.md文件

  2. shell/设置外网访问权限

    /sbin/route add default gw 10.94.144.1 该网段的默认路由地址即路由器的地址为10.xxx.xxx.1 而路由器是可以访问外网的 由于静态路由在网卡启动时会删除,所

  3. shell/文件权限操作

    文件安全与权限 文件类型 d 目录 l 符号连接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 普通文件 改变权限 符号模式 chmod [who] operator

  4. shell/条件测试

    测试语法 test condition #或 [ condition ] 使用方括号时,要注意在条件两边加上空格。 文件测试 测试状态: 符号 释义 -d 是否是目录 -f 是否

  5. 常用shell命令

    常用命令 查找类 find / -name "export.sh" which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文

随机推荐

  1. wget批量下载gitlab uploads的文件和图片

    背景 下载gitlab的uploads文件,因为wiki可以直接clone,但是上传的文件和图片却无法下载(除非你有gitlab的服务器权限) 之前尝试用写Java工具下载 遍历所有的.md文件

  2. shell/设置外网访问权限

    /sbin/route add default gw 10.94.144.1 该网段的默认路由地址即路由器的地址为10.xxx.xxx.1 而路由器是可以访问外网的 由于静态路由在网卡启动时会删除,所

  3. shell/文件权限操作

    文件安全与权限 文件类型 d 目录 l 符号连接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 普通文件 改变权限 符号模式 chmod [who] operator

  4. shell/条件测试

    测试语法 test condition #或 [ condition ] 使用方括号时,要注意在条件两边加上空格。 文件测试 测试状态: 符号 释义 -d 是否是目录 -f 是否

  5. 常用shell命令

    常用命令 查找类 find / -name "export.sh" which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文