locate (按名称查找文件)

瑞兹 发表于 2021-01-29 09:06
浏览次数:
在手机上阅读

在类似Unix的操作系统上,locate命令按名称查找文件。

查看英文版

目录

1 locate 运行系统环境

2 locate 描述

3 locate 语法

4 locate 例子

locate 运行系统环境

Unix&Linux

locate 描述

locate读取由updatedb准备的一个或多个数据库,并将与至少一个PATTERN匹配的文件名写入标准输出,每行一个。

如果--regex没有指定,模式可以包含通配符 的字符。如果任何PATTERN不包含浮点字符,locate的行为就好像该模式是“ * PATTERN * ”。

默认情况下,locate不会检查在数据库中找到的文件是否仍然存在(但是如果数据库是使用“ --require-visibility no ”构建的,则它确实要求所有父目录都存在)。在有关数据库的最新更新之后,locate永远不会报告创建的文件。

locate reads one or more databases prepared by updatedb and writes file names matching at least one of the PATTERNs to standard output, one per line.

If --regex is not specified, PATTERNs can contain globbing characters. If any PATTERN contains no globbing characters, locate behaves as if the pattern were "*PATTERN*".

By default, locate does not check whether files found in database still exist (but it does require all parent directories to exist if the database was built with "--require-visibility no"). locate can never report files created after the most recent update of the relevant database.

查看英文版

查看中文版

locate 语法

locate [OPTION]... PATTERN...

选件

-b,-- basename 仅将基本名称与指定的模式匹配,这与--wholename相反。
-c,-- count 不要在标准输出上写文件名,而只写匹配条目的数量。
-d,--database DBPATH 用DBPATH替换默认数据库。DBPATH是数据库文件名(冒号)分隔的列表。如果指定了多个--database选项,则结果路径为单独路径的串联。

空数据库文件名将替换为默认数据库。数据库文件名-指标准输入。请注意,数据库只能从标准输入读取一次。
-e,-- existing 仅打印引用定位时存在的文件的条目。
-L,--follow 在检查文件是否存在时(如果指定了--existing选项),请遵循尾随的符号链接。这将导致残破的符号链接从输出中省略。

此选项是默认行为。可以使用--nofollow指定相反的内容
-h--help 写出标准输出可用选项的摘要并成功退出。
-i,-- ignore-case 匹配模式时忽略大小写区别。
-l,-- limit
-n LIMIT
找到LIMIT个条目后成功退出。如果指定了--count选项,则结果计数也将限制为LIMIT。
-m,-- mmap 忽略不计,但包括了兼容BSD和GNU 定位
-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定位
-V,-- version 在标准输出上写有关locate的版本和许可证的信息,然后成功退出。
-w,-- wholename 仅将整个路径名与指定的模式匹配。

此选项是默认行为。可以使用--basename来指定相反的内容

退出状态

定位成功与身份退出0,如果:

  • 找到任何匹配项,或
  • 该命令是带的一个调用--limit 0--help--statistics--version选项,因为它造成这些选项不要搜索所有东西。因此,即使locate与任何结果都不匹配,命令也会成功退出。

在以下情况下,locate退出状态为1失败:

  • 找不到匹配项,或者
  • 遇到致命错误,导致程序终止。
locate [OPTION]... PATTERN...

Options

-b--basename Match only the base name against the specified patterns, which is the opposite of --wholename.
-c--count Instead of writing file names on standard output, write the number of matching entries only.
-d--database DBPATH Replace the default database with DBPATH. DBPATH is a : (colon) separated list of database file names. If more than one --database option is specified, the resulting path is a concatenation of the separate paths.

An empty database file name is replaced by the default database. A database file name - refers to the standard input. Note that a database can be read from the standard input only once.
-e--existing Print only entries that refer to files existing at the time locate is run.
-L--follow When checking whether files exist (if the --existing option is specified), follow trailing symbolic links. This causes bro ken symbolic links to be omitted from the output.

This option is the default behavior. The opposite can be specified using --nofollow.
-h--help Write a summary of the available options to standard output and exit successfully.
-i--ignore-case Ignore case distinctions when matching patterns.
-l--limit,
-n LIMIT
Exit successfully after finding LIMIT entries. If the --count option is specified, the resulting count is also limited to LIMIT.
-m--mmap Ignored, but included for compatibility with BSD and GNU locate.
-P--nofollow-H When checking whether files exist (if the --existing option is specified), do not follow trailing symbolic links. This causes broken symbolic links to be reported like other files.

This option is the opposite of --follow.
-0--null Separate the entries on output using the ASCII NUL character instead of writing each entry on a separate line. This option is designed for interoperability with the --null option of GNU xargs.
-S--statistics Write statistics about each read database to standard output instead of searching for files and exit successfully.
-q--quiet Write no messages about errors encountered while reading and processing databases.
-r--regexp REGEXP Search for a basic regexp REGEXP. No PATTERNs are allowed if this option is used, but this option can be specified multiple times.
--regex Interpret all PATTERNs as extended regexps.
-s--stdio Ignored, for compatibility with BSD and GNU locate.
-V--version Write information about the version and license of locate on standard output and exit successfully.
-w--wholename Match only the whole path name against the specified patterns.

This option is the default behavior. The opposite can be specified using --basename.

Exit Status

locate exits successfully with status 0 if:

  • any match was found, or
  • the command was invoked with one of the --limit 0--help--statistics or --version options, because those options cause it not to search for anything at all. Therefore, even though locate did not match any results, the command exits successfully.

locate exits unsuccessfully with status 1 if:

  • no match was found, or
  • a fatal error was encountered, causing the program to terminate.

读取数据库时遇到的错误不是致命的;在其他指定的数据库(如果有)中继续搜索。

Errors encountered while reading a database are not fatal; search continues in other specified databases, if any.

查看英文版

查看中文版

locate 例子

locate perl

在本地计算机上找到名为perl的文件。

locate perl

Locates files named perl on the local machine.

查看英文版

查看中文版

其他命令行

link | ldd | last | ln | login | ls | lsmod | lpstat | losetup | lprm | lpr | lpq | lp | lpc | logname | lpadmin |

如此好文,分享给朋友
发表评论
验证码:
评论列表
共0条