📜  使用示例在 Linux 中定位命令

📅  最后修改于: 2022-05-13 01:57:30.105000             🧑  作者: Mango

使用示例在 Linux 中定位命令

Linux 中的locate命令用于按名称查找文件。用户可以使用两种最广泛使用的文件搜索实用程序,称为 find 和locatelocate实用程序比find命令的副本运行得更好更快,因为它不是在启动文件搜索时搜索文件系统,而是通过数据库查看。该数据库包含文件的位和部分以及它们在系统上的相应路径。默认情况下,locate 命令不检查在数据库中找到的文件是否仍然存在,并且它从不报告在相关数据库最近更新后创建的文件。

句法:

locate [OPTION]... PATTERN...

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

选项:

  • -b, –basename :只匹配基本名称与指定的模式,这与–wholename相反。
  • -c, –count :不要在标准输出上写文件名,只写匹配条目的数量。
  • -d, –database DBPATH :DBPATH替换默认数据库。 DBPATH 是一个: (colon)分隔的数据库文件名列表。如果指定了多个–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 NUL字符分隔输出中的条目,而不是将每个条目写在单独的行上。此选项旨在与 GNU xargs 的–null选项互操作。
  • -S, –statistics :将有关每个读取数据库的统计信息写入标准输出,而不是搜索文件并成功退出。
  • -q, –quiet :不写入有关读取和处理数据库时遇到的错误的消息。
  • -r, –regexp REGEXP :搜索基本的正则表达式 REGEXP。如果使用此选项,则不允许使用 PATTERN,但可以多次指定此选项。
  • –regex :将所有 PATTERN 解释为扩展的正则表达式。
  • -s, –stdio :忽略,与 BSD 和 GNU locate 兼容。
  • -V, –version :在标准输出上写入 locate 的版本和许可证信息并成功退出。
  • -w, –wholename :仅将整个路径名与指定模式匹配。此选项是默认行为。可以使用–basename指定相反的情况

示例 1:搜索具有特定名称的文件。



$ locate sample.txt 

它将在特定目录中搜索 sample.txt。

输出:

示例 2:将搜索查询限制为特定数量。

$ locate "*.html" -n 20

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

输出:

示例 3.显示匹配条目的数量。



$ locate -c [.txt]*

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

输出:

示例 4:忽略区分大小写的定位输出。此命令配置为以区分大小写的方式处理查询。这意味着 SAMPLE.TXT 将显示与sample.txt不同的结果。

$ locate -i *SAMPLE.txt*

输出:

示例 5:不带换行符的单独输出条目。

$ locate -i -0 *sample.txt*

locate 命令的默认分隔符是换行符 (\\n)字符。但是如果有人想使用不同的分隔符,比如 ASCII NUL,他/她可以使用-0命令行选项来实现。

输出: