Linux平台大多数新用户通常面临的最讨厌的经历之一是无法找到在其系统上查找文件的最简单但更有效的方法。
像几乎任何其他操作系统一样,Linux使用多种机制来回答用户的搜索查询。 用户可以访问的两个最受欢迎的文件搜索工具称为查找和定位 。
现在,重要的是要注意,这两个搜索过程都非常好,但是这篇文章的中心将更多地放在定位实用程序上,这是更方便的,因为它使用更有效的方式来快速处理由用户。
定位实用程序比找到对应方更好,更快,因为在启动文件搜索时找不到搜索文件系统 - 找到的东西可以通过数据库进行查找。 该数据库包含系统中的位和部分文件及其对应的路径。
这里有十个简单的定位命令,可以让您在使用Linux机器时变得更有效率。
1.使用locate命令
发现locate命令来查找文件是非常简单直接的。 所有你需要做的是类型:
$ locate LAMP-Setup.odt /home/youcl/LAMP-Setup.odt /home/youcl/youcl.com/LAMP-Setup.odt
2.将搜索查询限制为特定号码
您可以将搜索返回限制为必需的数字,以避免使用-n
命令使用搜索结果进行冗余。
例如,如果您只需要查询中的20个结果,则可以键入以下命令:
$ locate "*.html" -n 20 /home/youcl/.config/google-chrome/Default/Extensions/aapocclcgogkmnckokdopfmhonfmgoek/0.9_0/main.html /home/youcl/.config/google-chrome/Default/Extensions/aohghmighlieiainnegkcijnfilokake/0.9_0/main.html /home/youcl/.config/google-chrome/Default/Extensions/felcaaldnbdncclmgdcncolpebgiejap/1.1_0/main.html /home/youcl/.config/google-chrome/Default/Extensions/kbfnbcaeplbcioakkpcpgfkobkghlhen/14.752.848_0/forge.html /home/youcl/.config/google-chrome/Default/Extensions/kbfnbcaeplbcioakkpcpgfkobkghlhen/14.752.848_0/src/popup.html /home/youcl/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/additional-feature.html /home/youcl/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/background.html /home/youcl/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/edit.html /home/youcl/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/help.html /home/youcl/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/options.html /home/youcl/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/popup.html /home/youcl/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/purchase.html /home/youcl/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/upload.html /home/youcl/.config/google-chrome/Default/Extensions/nlipoenfbbikpbjkfpfillcgkoblgpmj/3.9.16_0/oauth2/oauth2.html /home/youcl/.config/google-chrome/Default/Extensions/nmmhkkegccagdldgiimedpiccmgmieda/1.0.0.2_0/html/craw_window.html /home/youcl/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_route_details.html /home/youcl/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/feedback.html /home/youcl/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_setup/devices.html /home/youcl/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_setup/index.html /home/youcl/.config/google-chrome/Default/Extensions/pkedcjkdefgpdelpbcmbmeomcjbeemfm/5516.1005.0.3_0/cast_setup/offers.html
结果将显示以.html
结尾的前20个文件。
3.显示匹配条目的数量
如果要显示文件“ youcl ”的所有匹配条目的计数,请使用locate -c命令。
$ locate -c [youcl]* 1550
4.忽略区分大小写定位输出
默认情况下, locate被配置为以区分大小写的方式处理查询,这意味着TEXT.TXT
将指向与text.txt
不同的结果。
要使定位命令忽略大小写敏感性并显示大写和小写查询的结果,请输入带有-i
选项的命令。
$ locate -i *text.txt* /home/youcl/TEXT.txt /home/youcl/text.txt
刷新mlocate数据库
由于locate命令依赖于一个名为mlocate的数据库。 需要定期更新所述数据库以使命令实用程序正常工作
有效率的。
要更新mlocate数据库,请使用名为updatedb的实用程序。 应该注意的是,您将需要超级用户权限才能正常工作,需要以root用户或sudo权限执行。
$ sudo updatedb
6.仅显示系统中存在的文件
当您有更新的mlocate数据库**时, locate命令仍会生成从系统中删除其物理副本的文件的结果。
为了避免在命令冲击时看到机器中不存在的文件的结果,您需要使用locate-e命令。 该过程搜索您的系统以验证您要查找的文件的存在,即使它仍然存在于您的mlocate.db中 。
$ locate -i -e *text.txt* /home/youcl/text.txt
7.没有新行的独立输出条目
locate命令的默认分隔符是换行符(\\n)
。 但是,如果您喜欢使用不同的分隔符,如ASCII NUL ,则可以使用-0
命令行选项。
$ locate -i -0 *text.txt* /home/youcl/TEXT.txt/home/youcl/text.txt
8.查看您的查找数据库
如果您对mlocate.db的当前状态有疑问 ,可以使用-S
命令轻松查看定位数据库的统计信息。
$ locate -S Database /var/lib/mlocate/mlocate.db: 32,246 directories 4,18,850 files 2,92,36,692 bytes in file names 1,13,64,319 bytes used to store database
9.禁止查找中的错误消息
不断尝试访问您的定位数据库有时会产生不必要的错误消息,指出您没有必要的权限来对mlocate.db进行root访问,因为您只是普通用户,而不是所需的超级用户。
要完全消除这些消息,请使用-q
命令。
$ locate "\*.dat" -q*
10.选择不同的位置
如果您正在输入查询默认mlocate数据库中不存在的结果的查询,并且要从位于系统其他位置的其他mlocate.db的答案,您可以将locate命令指向系统不同部分的另一个mlocate数据库使用-d
命令。
$ locate -d <new db path> <filename>
定位命令可能看起来像其中一个实现您所要求的一切工具,而不用匆忙,但实际上,为了使流程保持其效率, mlocate.db需要随时提供信息。 否则可能会导致程序无用。