详解 locate
- 概述
- 安装
- 用法
- 使用 updatedb 创建数据库
- 如何使用 locate 命令
- 不使用选项
- 使用选项
- 总结
概述
如果想要在整个系统里搜索文件或目录,locate
就是您最好的朋友。它依赖一个每天更新的数据库来帮助解决问题。
locate
不会在文件系统上直接查找文件或者目录,它将预先采集的绝对路径存在数据库里。
安装
在大多数现代 Linux 发行版中,可以通过 plocate
和 mlocate
包使用 locate
命令。这两个包都提供了两个命令: locate
和 updatedb
。
# Arch
sudo pacman -S plocate
# Debian / Ubuntu
sudo apt install plocate
# Fedora
sudo dnf install plocate
用法
使用 updatedb 创建数据库
在使用它之前,你需要运行 updatedb
来创建它的数据库,如下所示:
sudo updatedb
执行 updatedb命令需要些时间。通常 updatedb 每天由系统自动运行一次,以保持数据库的更新。
由于数据库不能保证所保存的是最新信息。因此在使用 locate
时,最新的文件/目录不会显示出来。为了克服这个问题,可以手动运行updatedb
命令。
如何使用 locate 命令
locate
命令语法格式:
locate [OPTION]... PATTERN...
根据给定的模式和选项,locate
可以利用数据库对文件或者目录进行快速搜索。值得一提的是,locate
可以有选项,也可以没选项。
不使用选项
比如要查找包含 bin
的所有路径:
locate bin
如果要查找同时包含 bin
和 zip
的路径名,可以使用下面的模式输入:
locate bin zip
当然也可以使用通配符模式:
locate '*.md'
使用选项
加 -c
或--count
选项显示匹配项的数量。例如,下面将打印可访问的 javascript
文件的数量:
locate -c '*.js'
使用-l
或--limit
选项可以设置搜索项的上限,例如:
locate -l 10 '*.css'
默认情况下,location 执行区分大小写的搜索,添加-i
或者 --ignore-case
忽略大小写:
locate -i '*.md'
如果希望使用 POSIX 基本正则表达式进行搜索,就需要添加-r
或--regexp
选项。例如,要计算所有 JavaScript 和 JSON 文件的数量,命令将是:
locate --regexp -c '\.\(js\|json\)$'
总结
# 更新数据库
sudo updatedb
# 查找文件名
locate cat.jpg
# 查找既包含 bin 又包含 python的文件
locate bin python
# 使用通配符查找
locate '*.jpg'
# 计算jpg 文件数
locate -c '*.jpg'
# 仅显示 10 个jpg 文件
locate -l 10 '*.jpg'
# 忽略大小写
locate -i 'cat.jpg'
# 不显示数据库存在,但实际上已删除的文件
locate -e 'cat.jpg'
# 使用正则表达式搜索
locate -r '\.\(js\|json\)$'
更多推荐
Linux | 详解命令 locate
发布评论