Linux locate命令教程:轻松定位文件(附常用参数及实例和索引建立)

Linux locate命令

locate 命令允许您对文件执行超快速搜索。在本教程中,您将了解locate 命令的工作原理以及如何使用它。

顾名思义,Linux中的locate命令用于定位(搜索)文件。它具有以下语法:
locate [-d ][--help][--version][范本样式...]

虽然使用locate命令非常简单,但它带有很多如果和但是。首先,如果没有找到文件,并不一定意味着该文件在系统上不存在。

现在不要感到困惑。我将解释locate命令的工作原理以及如何使用它来查找文件。

参数:
  • -b, --basename -- 仅匹配路径名的基本名称
  • -c, --count -- 只输出找到的数量
  • -d, --database DBPATH -- 使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
  • -e, --existing -- 仅打印当前现有文件的条目
  • -1 -- 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
  • -0, --null -- 在输出上带有NUL的单独条目
  • -S, --statistics -- 不搜索条目,打印有关每个数据库的统计信息
  • -q -- 安静模式,不会显示任何错误讯息。
  • -P, --nofollow, -H -- 检查文件存在时不要遵循尾随的符号链接
  • -l, --limit, -n LIMIT -- 将输出(或计数)限制为LIMIT个条目
  • -n -- 至多显示 n个输出。
  • -m, --mmap -- 被忽略,为了向后兼容
  • -r, --regexp REGEXP -- 使用基本正则表达式
  • --regex -- 使用扩展正则表达式
  • -q, --quiet -- 安静模式,不会显示任何错误讯息
  • -s, --stdio -- 被忽略,为了向后兼容
  • -o -- 指定资料库存的名称。
  • -h, --help -- 显示帮助
  • -i, --ignore-case -- 忽略大小写
  • -V, --version -- 显示版本信息

实例

使用locate命令非常简单。您只需指定文件名:

locate filename

结果将显示找到您指定的文件的所有位置。

abhishek@linux-console:~$ locate desktop.iso
/home/abhishek/desktop.iso

最好的部分是您不需要在某个目录中即可找到该文件。请记住,locate 命令不会搜索文件系统,而是搜索索引。这就是为什么您在查找文件时不需要指定路径或目录。

您还可以使用 -i 选项执行不区分大小写的搜索:

abhishek@linux-console:~$ locate -i desktop.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso

请记住,结果可能会显示名称中包含搜索词的所有文件。

abhishek@linux-console:~$ locate -i desktop
/home/abhishek/eoan-desktop-amd64.iso
/home/abhishek/Bionic-Desktop-amd64.iso
/home/abhishek/desktop.iso
/home/abhishek/Downloads/Desktop.iso

您还可以将正则表达式与locate一起使用:

locate -r regex_expression

使用updatedb为locate命令创建自己的索引

这仅供参考,我认为您不需要使用它。

您可以像这样手动重建整个系统的数据库:

sudo updatedb

如果要创建当前目录(及其子目录)的索引,可以使用updatedb命令,如下所示:

updatedb -l0 -U my_directory -o index_file

创建此索引文件后,您可以要求locate命令显式使用此索引:

locate -d index_file file_name

附加说明

locate 与 find 不同: find 是去硬盘找,locate 只在 /var/lib/slocate 资料库中找。

locate 的速度比 find 快,它并不是真的查找,而是查数据库,一般文件数据库在 /var/lib/slocate/slocate.db 中,所以 locate 的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库 ,命令为:

updatedb

默认情况下 updatedb 每天执行一次。

这里是封面:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值