📅  最后修改于: 2020-12-08 03:16:16             🧑  作者: Mango
查找命令和查找命令用于按名称搜索文件。但是,这两个命令之间的区别在于,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
考虑以下输出:
通过使用“ -n”选项,我们可以限制搜索结果以避免重复。
例如。要仅显示查询的5个结果,请执行以下命令:
locate -n 5 "*.txt"
上面的命令将显示前五个文本文件。考虑以下输出:
要显示匹配文件的总和,请使用“ -c”选项执行命令。考虑以下命令:
locate -c Demo*
上面的命令将显示名称中带有“ Demo”的文件的总和。考虑以下输出:
众所周知,Linux终端区分大小写。因此,如果我们以大写字母搜索文件,它将仅以大写字母列出文件。要忽略区分大小写,请使用“ -i”选项执行命令,如下所示:
locate -i "demo.txt"
上面的命令将同时显示名称中带有“ demo”和“ Demo”的文件。考虑以下输出:
查找命令取决于“ mlocate”数据库。因此,如果locate命令不能正常工作,则需要更新数据库。要更新数据库,请按如下所示执行“ updatedb”命令:
sudo updatedb
有时,locate命令会导致删除文件。为了避免看到删除文件的结果,请使用“ -e”选项执行命令。它只会显示我们系统中实际可用的文件。考虑以下命令:
locate -i -e *demo.txt*
它将产生以下输出:
要找到数据库统计信息,请使用“ -S”选项执行命令,如下所示:
locate -S
考虑以下输出:
locate命令的默认输出分隔符是换行符。但是我们可以更改默认的分隔符,例如,要使用ASCII NUL,请使用'-0'选项执行命令。考虑以下命令:
locate -i -0 "demo.txt"
它将输出显示为: