linux之文件快速搜索locate命令
一、基本用法
locate [options] pattern
locate查找文件比find
快得多多得多,工作中一些简单快捷的查询应该尽量使用locate,如果locate找不到,则再使用find,locate不是实时的,依赖一个数据库,这个数据库一般是每天一更新,可以使用updatedb
来更新数据库。
locate后面的pattern如果没有出现通配符,则系统默认在前后加上*
号,
例如 locate showd.log
相当于 locate '*showd.log*'
,只要出现一个通配符,系统就不加*
号了,这点儿要注意
locate还可以使用正则表达式,需要加上-r
选项,具体的看locate的man page
二、加引号和不加引号的区别
假设系统中有如下的文件
/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*'
相关文章
- wget批量下载gitlab uploads的文件和图片
背景 下载gitlab的uploads文件,因为wiki可以直接clone,但是上传的文件和图片却无法下载(除非你有gitlab的服务器权限) 之前尝试用写Java工具下载 遍历所有的.md文件
- shell/设置外网访问权限
/sbin/route add default gw 10.94.144.1 该网段的默认路由地址即路由器的地址为10.xxx.xxx.1 而路由器是可以访问外网的 由于静态路由在网卡启动时会删除,所
- shell/文件权限操作
文件安全与权限 文件类型 d 目录 l 符号连接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 普通文件 改变权限 符号模式 chmod [who] operator
- shell/条件测试
测试语法 test condition #或 [ condition ] 使用方括号时,要注意在条件两边加上空格。 文件测试 测试状态: 符号 释义 -d 是否是目录 -f 是否
- 常用shell命令
常用命令 查找类 find / -name "export.sh" which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文
随机推荐
- wget批量下载gitlab uploads的文件和图片
背景 下载gitlab的uploads文件,因为wiki可以直接clone,但是上传的文件和图片却无法下载(除非你有gitlab的服务器权限) 之前尝试用写Java工具下载 遍历所有的.md文件
- shell/设置外网访问权限
/sbin/route add default gw 10.94.144.1 该网段的默认路由地址即路由器的地址为10.xxx.xxx.1 而路由器是可以访问外网的 由于静态路由在网卡启动时会删除,所
- shell/文件权限操作
文件安全与权限 文件类型 d 目录 l 符号连接 s 套接字文件 b 块设备文件 c 字符设备文件 p 命名管道文件 普通文件 改变权限 符号模式 chmod [who] operator
- shell/条件测试
测试语法 test condition #或 [ condition ] 使用方括号时,要注意在条件两边加上空格。 文件测试 测试状态: 符号 释义 -d 是否是目录 -f 是否
- 常用shell命令
常用命令 查找类 find / -name "export.sh" which 查看可执行文件的位置 whereis 查看文件的位置 locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文