Linux 中的 locate 命令详解及实例

Linux 中的 locate 命令是一种快速且高效的工具,用于根据文件名查找文件。与 find 命令不同,它通过搜索预先建立的文件路径数据库来工作,而不是扫描整个文件系统,这使得搜索速度快得多。

  • 用于根据名称搜索和定位文件或目录。
  • 由于使用了预索引的数据库,其工作速度比 find 命令更快。
  • 数据库使用 updatedb 命令进行更新。
  • 在数据库刷新之前,新创建的文件不会出现在搜索结果中。

示例 1:使用 locate 命令搜索特定名称的文件

locate sample.txt

此命令将在特定目录中搜索 sample.txt。

locate 命令的语法

locate [OPTION]... PATTERN...

退出状态: 如果找到任何指定的匹配项,该命令将以状态 0 退出。如果未找到匹配项或遇到致命错误,则将以状态 1 退出。

locate 命令中的选项

1. 仅打印现有文件

仅显示当前系统中存在的文件。

locate -e sample.txt

2. 跟随符号链接

包含作为符号链接的文件(默认行为)。

locate -l 5 newfolder

3. 使用 locate 命令显示匹配条目的数量

locate -c [.txt]*

它将统计以 .txt 结尾的文件。

4. 使用 locate 命令忽略大小写

该命令默认配置为以区分大小写的方式处理查询。这意味着 SAMPLE.TXT 将显示与 sample.txt 不同的结果。

$ locate -i *SAMPLE.txt*

5. 使用 locate 命令输出不带换行符的条目

locate -i -0 *sample.txt*

locate 命令的默认分隔符是换行符(\

)。但是,如果有人想使用不同的分隔符,如 ASCII NULL,则可以使用 -0 命令行选项来实现。

6. 限制结果数量

仅显示前五个匹配的 .conf 文件。

locate -l 5 *.conf

7. 显示数据库统计信息

显示有关 locate 数据库的信息,例如文件计数和存储大小。

locate -S

输出:

Database /var/lib/mlocate/mlocate.db:  
  12345 directories  
  67890 files  
  2,345,678 bytes in file names

8. 使用 locate 命令将搜索查询限制为特定数量

locate "*.html" -n 20

它将显示 20 个以 .html 结尾的文件搜索结果。

Linux 中 ‘locate‘ 命令可用的选项

选项

描述

-b, –basename

仅根据指定模式匹配基本名称,这与 –wholename 相反。

-c, –count

不在标准输出上写入文件名,而是仅写入匹配条目的数量。

-d, –database DBPAT

用 DBPATH 替换默认数据库。DBPATH 是以 :(冒号)分隔的数据库文件名列表。如果指定了多个 –database 选项,则结果路径是各个路径的连接。空的数据库文件名将由默认数据库替换。数据库文件名 – 指的是标准输入。请注意,从标准输入读取数据库只能进行一次。

-e, –existing

仅打印在运行 locate 时存在的文件的条目。

-L, –follow

检查文件是否存在时(如果指定了 –existing 选项),跟随尾部的符号链接。这将导致损坏的符号链接从输出中省略。此选项是默认行为。可以使用 –nofollow 指定相反的行为。

-h, –help

将可用选项的摘要写入标准输出并成功退出。

-i, –ignore-case

匹配模式时忽略大小写区别。

-l, –limit, -n LIMIT

在找到 LIMIT 个条目后成功退出。如果指定了 –count 选项,则结果计数也限制为 LIMIT。

-m, –mmap

已忽略,但为了与 BSD 和 GNU locate 兼容而包含在内。

-P, –nofollow, -H

检查文件是否存在时(如果指定了 –existing 选项),不跟随尾部的符号链接。这将导致损坏的符号链接像其他文件一样被报告。此选项与 –follow 相反。

-0, –null

在输出上使用 ASCII NULL 字符分隔条目,而不是换行符。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/49482.html
点赞
0.00 平均评分 (0% 分数) - 0