使用示例在 Linux 中定位命令
Linux 中的locate命令用于按名称查找文件。用户可以使用两种最广泛使用的文件搜索实用程序,称为 find 和locate 。 locate实用程序比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命令行选项来实现。
输出: