📜  Linux定位

📅  最后修改于: 2020-12-08 03:16:16             🧑  作者: Mango

Linux定位命令

查找命令和查找命令用于按名称搜索文件。但是,这两个命令之间的区别在于,locate命令是后台进程,并且在数据库中搜索文件,而find命令在文件系统中搜索。查找命令比查找命令快得多。

如果无法使用locate命令找到文件,则意味着您的数据库已过期,您可以使用“ updatedb”命令更新数据库。

句法:

locate [OPTION]... PATTERN...

选项:

一些有用的命令行选项如下:

-A,–all:用于仅显示与所有PATTERN匹配的条目,而不是仅要求其中一个匹配。

-b,–basename:用于仅将基本名称与指定的模式匹配。

-c,–count:用于写数字匹配项,而不是在标准输出上写文件名。

-d,–database DBPATH:用于将默认数据库替换为DBPATH。

-e,–existing:用于在执行命令期间仅显示引用现有文件的条目。

-L,–follow:如果指定了“ –existing”选项,则该选项用于检查文件是否存在并跟踪尾随的符号链接。它将忽略断开的符号链接到输出。这是默认行为。可以使用“ –nofollow”选项指定相反的行为。

-h,– help:用于显示帮助文档,其中包含可用选项的摘要。

-i,-ignore-case:用于忽略指定模式的区分大小写。

-p,-ignore-spaces:用于匹配模式时忽略标点和空格。

-t,– transliterate:用于在匹配模式时使用iconv音译忽略重音。

-l,–limit,-n LIMIT:如果指定了此选项,则在找到LIMIT条目后命令将成功退出。

-m,–mmap:用于忽略与BSD和GNU定位的兼容性。

-0,–null:用于使用ASCII NUL字符分隔输出上的条目,而不是将每个条目写在单独的行上。

-S,–statistics:用于将有关每个读取数据库的统计信息写入标准输出,而不是搜索文件。

-r,-regexp REGEXP:用于搜索基本的regexp REGEXP。

–regex:用于将所有PATTERN描述为扩展的正则表达式。

-V,– version:用于显示版本和许可证信息。

-w,–wholename:仅用于匹配指定模式中的整个路径名。

locate命令的示例

让我们看一下locate命令的以下示例:

如何使用定位命令

查找命令是用于搜索文件的有用实用程序。使用起来非常简单,只需执行以下命令即可:

locate 

考虑以下输出:

限制搜索查询

通过使用“ -n”选项,我们可以限制搜索结果以避免重复。

例如。要仅显示查询的5个结果,请执行以下命令:

locate -n 5 "*.txt"

上面的命令将显示前五个文本文件。考虑以下输出:

显示匹配条目数

要显示匹配文件的总和,请使用“ -c”选项执行命令。考虑以下命令:

locate -c Demo*

上面的命令将显示名称中带有“ Demo”的文件的总和。考虑以下输出:

忽略大小写

众所周知,Linux终端区分大小写。因此,如果我们以大写字母搜索文件,它将仅以大写字母列出文件。要忽略区分大小写,请使用“ -i”选项执行命令,如下所示:

locate -i "demo.txt"

上面的命令将同时显示名称中带有“ demo”和“ Demo”的文件。考虑以下输出:

更新mlocate数据库

查找命令取决于“ mlocate”数据库。因此,如果locate命令不能正常工作,则需要更新数据库。要更新数据库,请按如下所示执行“ updatedb”命令:

sudo updatedb

仅显示系统中的可用文件

有时,locate命令会导致删除文件。为了避免看到删除文件的结果,请使用“ -e”选项执行命令。它只会显示我们系统中实际可用的文件。考虑以下命令:

locate -i -e *demo.txt*

它将产生以下输出:

跟踪mlocate数据库的状态

要找到数据库统计信息,请使用“ -S”选项执行命令,如下所示:

locate -S

考虑以下输出:

使用不同的分隔符分隔输出条目

locate命令的默认输出分隔符是换行符。但是我们可以更改默认的分隔符,例如,要使用ASCII NUL,请使用'-0'选项执行命令。考虑以下命令:

locate -i -0 "demo.txt"

它将输出显示为: