随笔 - 6  文章 - 124  评论 - 1  阅读 - 13042

Linux locate 命令详解

简介

locate 命令用于通过查询预构建的数据库来快速搜索文件和目录,该数据库包含来自文件系统的索引文件路径。它比 find 之类的命令要快得多,因为它不会实时搜索整个文件系统。

关键概念

  • locate 命令依赖于数据库,通常位于 /var/lib/mlocate/mlocate.db,数据库文件会定期通过后台进程任务更新。

  • 因为数据库更新不是实时的,最新创建的文件可能不会被查询到,直到下次数据库更新。

安装

# Debian/Ubuntu
sudo apt update
sudo apt install mlocate

# CentOS/RHEL/Fedora
sudo yum install mlocate
sudo updatedb  # 初始化数据库

示例用法

搜索指定的文件

locate [filename]

locate example.txt

搜索部分匹配项

locate [example]

# 示例输出如下:
# /home/user/documents/example.txt
# /home/user/example_folder

搜索时不区分大小写

locate -i [Example]

显示输出的结果条数

locate -n 5 filename

配合 grep 使用

locate [filename] | grep '/home/user'

搜索实际的文件系统,不通过数据库

locate -e filename

更新本地数据库

sudo updatedb

从数据库中排除目录

修改 /etc/updatedb.conf 文件,添加如下示例行:

PRUNEPATHS="/tmp /var/tmp /var/cache"

统计匹配到的结果数

locate [filename] | wc -l

locate -c [filename]

查找以指定后缀结尾的文件

locate *.log

查找最近修改的文件

sudo updatedb

locate [example] | grep "$(date +%Y-%m-%d)"

结合正则表达式使用

locate --regex -i "(\.mp4|\.avi)"
posted on   我是唐青枫  阅读(35)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示