在Linux操作系统上工作时最常见的操作之一是搜索文件和目录,我们可以在Linux系统中安装locate并使用locate命令来操作,因为该命令是按名称搜索文件和目录的,使用它处理起来相当的简单,在本文中,我们将解释如何使用locate命令。

在Linux系统上安装locate

要检查Linux系统上是否安装了locate实用程序,请打开终端,输入locate,然后按Enter键,如果安装了软件包,系统将显示locate: no pattern to search for specified,否则将看到locate command not found。

如果未安装locate,可以使用发行版的软件包管理器安装。

1、在Ubuntu和Debian上安装locate,运行:

$ sudo apt update

$ sudo apt install mlocate

2、在CentOS和Fedora上安装locate,运行:

$ sudo yum install mlocate

locate工作介绍

locate命令通过updatedb命令生成的数据库文件搜索给定模式,找到的结果显示在屏幕上,每行一个。

在安装mlocate软件包期间,会创建一个每24小时运行updatedb命令的cron作业,这可确保定期更新数据库,有关cron作业的更多信息,请检查/etc/cron.daily/mlocate文件,也可参考在Linux系统下使用Crontab UI安全管理Cron定时任务。

可以通过以root身份运行updatedb命令或使用sudo权限的用户手动更新数据库:

$ sudo updatedb

更新过程将需要一些时间,具体取决于文件和目录的数量以及系统的速度。

数据库更新后创建的文件不会显示在定位结果中。

与搜索文件系统的更强大的find命令相比(参考:在Linux系统中使用ls、tree和find快速定位文件),locate运行速度更快但缺少许多功能,并且只能通过文件名进行搜索。

使用locate命令

locate命令的语法如下:

locate [OPTION] PATTERN...

在最基本的形式中,当使用没有任何选项时,locate命令将打印与搜索模式匹配且用户具有读取权限的所有文件和目录的绝对路径。

例如,要搜索名为.bashrc的文件,可以输入:

$ locate .bashrc

输出将包含名称中包含字符串.bashrc的所有文件的名称:

/etc/bash.bashrc

/etc/skel/.bashrc

/home/linuxize/.bashrc

/usr/share/base-files/dot.bashrc

/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc

/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc

/root/.bashrc文件将不会显示,因为我们将命令作为普通用户运行,该用户对/root目录没有访问权限。

如果结果列表很长,为了更好的可读性,可以将输出传递给less命令:

$ locate .bashrc | less

locate命令还接受包含通配符的模式,例如通配符*,当模式不包含通配符时,命令会搜索*PATTERN*,这就是为什么在前面的示例中显示了名称中包含搜索模式的所有文件。

通配符是用于表示零个,一个或多个字符的符号,例如,要搜索系统上的所有.md文件,你将使用:

$ locate *.md

要限制搜索结果,请使用-n选项,后跟要显示的结果数,例如,以下命令将搜索所有.py文件并仅显示10个结果:

$ locate -n 10 *.py

默认情况下,locate执行区分大小写的搜索, -i(--ignore-case)选项tels定位忽略大小写并运行不区分大小写的搜索:

$ locate -i readme.md

/home/linuxize/p1/readme.md

/home/linuxize/p2/README.md

/home/linuxize/p3/ReadMe.md

要显示所有匹配条目的计数,请使用-c(--count)选项,以下命令将返回名称中包含.bashrc的所有文件的数量:

$ locate -c .bashrc

6

默认情况下,locate不会检查找到的文件是否仍存在于文件系统上,如果在最新数据库更新后删除文件,如果文件与搜索模式匹配,则它将包含在搜索结果中。

要仅显示运行定位时存在的文件的名称,请使用-e(--existing)选项,例如,以下内容仅返回现有的.json文件:

$ locate -e *.json

如果需要运行更复杂的搜索,可以使用-r(--regexp)选项,该选项允许你使用基本正则表达式而不是模式进行搜索,可以多次指定此选项。

例如,要搜索系统上的所有.mp4和.avi文件并忽略大小写,你将运行:

$ locate --regex -i "(\.mp4|\.avi)"

结论

locate命令在文件系统中搜索名称与给定模式匹配的文件和目录,命令语法易于记忆,结果几乎立即显示。有关定位命令的所有可用选项的更多信息,请在终端中输入man查询。

相关主题

linux 安装locate命令,在Linux系统上安装和使用locate命令的方法相关推荐

  1. ubuntu安装java_如何在Ubuntu系统上安装Java

    作为Java开发人员,您将需要一次或两次在系统上安装它.与普遍的看法相反,在Ubuntu计算机上安装Java非常简单.在本文中,我们将说明以下三种在Ubuntu系统上安装稳定版本的Java的方法: 通 ...

  2. linux7安装pgsql数据库,在CentOS7系统上安装和配置PostgreSQL

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 添加RPM1yum install https://download.postgresql.org/pub/repos/ ...

  3. 在win8上安装mysql_如何在Win8系统上安装MySQL 5.6

    最近发现好多人都想在Win8上安装MySQL,但有些初学者甚至不知道在哪里下载MySQL,大部分都是从百度上搜索其他人或者网站共享的安装包,一般别人共享的包都是.msi的安装包,这种安装包的安装方法就 ...

  4. linux离线安装rjava,无法在ubuntu系统上安装rJava

    问题描述 我已经看到了一些与此相关的帖子-但是我看到的所有建议的解决方案似乎都不起作用-.我正在EC2实例中运行R并运行以下命令尝试安装rJava,但无济于事-任何帮助将不胜感激. > inst ...

  5. 安卓设备刷linux发行版,绝对精华,大牛教你在Android系统上安装linux发行版

    Install linux distribution (Debian/Ubuntu/Kali Linux/Fedora/openSUSE/Gentoo/RootFS/Arch Linux) on An ...

  6. WIN2003 X64 系统上安装sql server 2000 的步骤

    SQL Server 2000 安装 要在 64 位操作系统上安装此应用程序,请使用以下步骤: 浏览至 SQL Server 2000 安装点 安装 SQL Server 2000: 双击" ...

  7. 在Ubuntu系统上安装Windows 10(真实有效)

    在Ubuntu系统上安装Windows 10 在Ubuntu系统上安装Windows 10 亲测有效.全网只找到 https://blog.csdn.net/weixin_39278265/artic ...

  8. linux 命令安装 wine,在Linux系统上安装Wine的教程

    Wine,一个在Linux平台上非常受欢迎并且强大的开源应用,有了它,我们可以在Linux平台上完美运行Windows应用与游戏. WineHQ团队,近期宣布了一个新的开发版本Wine1.7.29.这 ...

  9. Redis进阶实践之二如何在Linux系统上安装安装Redis

    2019独角兽企业重金招聘Python工程师标准>>> Redis进阶实践之二如何在Linux系统上安装安装Redis 一.引言 上一篇文章写了"如何安装VMware Pr ...

最新文章

  1. Windows系统下MySQL安装详细教程(解决MySQL服务无法启动)
  2. spring整合webservice
  3. 简单一“录”,轻松完成金融业务审核!
  4. Apache Flink 零基础入门(十四)Flink 分布式缓存
  5. SpringBoot学习笔记(16):单元测试
  6. nginx+tomcat+redis负载均衡,实现session共享
  7. jboss esb 学习笔记与html的传输,Jboss_ESB学习笔记1.doc
  8. 腾讯、阿里能像 Facebook 一样发币吗?
  9. [Soft]软件技术的两个趋势
  10. java 取模运算_JAVA算术运算符_四则与取模
  11. 【供应链案例】解密可口可乐供应链管理策略,揭头部饮料企业成功之道
  12. Java图片识别技术原理-只取图片像素。。。
  13. 什么是CRM?多角度解析CRM系统
  14. 计算机图形学透视投影知识点,计算机图形学
  15. JavaScript:自动生成博文目录导航
  16. python拼音检查
  17. android 投屏mac,MAC投屏ipad、手机
  18. 最简单易学的手机打字方法
  19. 感动:我奋斗了18年才和你坐在一起喝咖啡(转)
  20. 数据库表的主键、唯一约束和索引

热门文章

  1. docker容器以及Java项目和当前北京时间不一致的问题
  2. 2022年西安二级建造师《建筑工程管理相关法规》每日练习题及答案
  3. 【比赛记录】国电投-风机叶片开裂故障预警比赛
  4. Bone Collector(骨头收集者)c++(01背包问题)
  5. 百度面试题:判断两棵树是否相等
  6. linux awk 数组,shell数组和awk数组
  7. div+css实现有序新闻文章列表布局
  8. 菜鸟学做seo全套教程
  9. 详细介绍如何自研一款博客搬家功能
  10. python自玩mp3播放