Linux 命令之 locate -- 文件查找工具(查找文件/搜索文件)

文章目录

  • 一、命令介绍
  • 二、相关文件说明
    • 配置文件 updatedb.conf
  • 三、更新数据库
  • 四、常用选项
  • 五、命令示例
    • 搜索文件名以指定字符串开头的文件
    • 查找名称中含有指定字符串的文件
    • 使用正则表达式查找特定条件的文件

一、命令介绍

locate 命令用来查找文件或目录。 locate 命令要比 find -name 快得多,原因在于它不会深入到文件系统中去搜索具体目录,而是搜索一个索引数据库 /var/lib/mlocate/mlocate.db 。这个数据库存放着系统中的所有文件信息。Linux 系统自动创建这个数据库,并且每天自动更新一次,因此,我们在用 whereislocate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。为了避免这种情况,可以在使用 locate 之前,先使用 updatedb 命令,手动更新数据库。

locate 可以指定具体名称、通配符、正则表达式来查找符合范本样式的文件和目录。

二、相关文件说明

文件说明
/usr/bin/updatedb主要用来更新数据库,默认每天执行一次,通过 crontab 自动完成的,该程序会开启一个名为 crond 的守护进程
/etc/crontabcrontab 的配置文件,可以设置程序 updatedb 的执行周期等
/etc/updatedb.confupdatedb 的配置文件
/usr/bin/locate命令文件的位置
/var/lib/mlocate/mlocate.db存放文件信息的数据库文件。版本不同,文件名和位置会有所不同,有的版本是 /var/lib/locatedb,有的版本是 /var/lib/slocate/slocate.db

配置文件 updatedb.conf

[root@htlwk0001host ~]# cat /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes"
PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fuse.sshfs fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs ceph fuse.ceph"
PRUNENAMES = ".git .hg .svn .bzr .arch-ids {arch} CVS"
PRUNEPATHS = "/afs /media /mnt /net /sfs /tmp /udev /var/cache/ccache /var/lib/yum/yumdb /var/lib/dnf/yumdb /var/spool/cups /var/spool/squid /var/tmp /var/lib/ceph"

注:

  1. PRUNE_BIND_MOUNTS 设置是否限制搜索,yes 表示限制搜索,no 表示不限制搜索;
  2. PRUNEFS 指定排除检索的文件系统类型,即列出的文件系统类型不进行检索;
  3. PRUNENAMES 指定排除检索的文件后缀名,即哪些后缀的文件不进行检索;
  4. PRUNEPATHS 指定排除检索的路径,即列出的路径下的文件及子目录均不会进行检索,所以 updatedb 之后使用 locate 仍然找不到明明存在的文件,可以在这里检查下是不是被排除在外了

三、更新数据库

[root@htlwk0001host ~]# updatedb

四、常用选项

选项说明
-b--basename仅匹配路径名的基本名称
-c--count只输出找到的条目数量
-d--database <DBPATH>使用 DBPATH 指定的数据库,而不是默认数据库 /var/lib/mlocate/mlocate.db
-e--existing仅打印 locate 运行时存在的文件的条目,仅打印当前现有文件的条目
-L--follow检查文件是否存在时,会跟踪符号链接,也就是说不把符号链接当成独立的文件进行检查,而是去检查链接文件所指向的源文件
-P--nofollow-HWhen 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. 检查文件存在时不跟踪符号链接,也就是说将符号链接也当成独立文件进行检索,这和选项 --follow 正好相反
-w--wholenamematch whole path name (default)
-i--ignore-case忽略大小写
-l -n <num>--limit -n <num>将输出(或计数)限制为 num 个条目
-m--mmapIgnored for compatibility with BSD and GNU locate.
-s--stdioIgnored for compatibility with BSD and GNU locate.
-0--null在输出中使用 NUL 分隔条目
-S--statistics将每个读取数据库的统计信息写入标准输出,而不是搜索文件并成功退出
-q--quiet不输出有关读取和处理数据库时遇到的错误的消息。
-r--regexp <REGEXP>使用基本正则表达式
--regex使用扩展正则表达式
-V--version显示版本信息
-h--help显示帮助

五、命令示例

搜索文件名以指定字符串开头的文件

搜索 /etc 目录下所有以 sh 开头的文件:

[root@linuxcool ~]# locate /etc/sh/etc/shadow/etc/shadow-/etc/shells

查找名称中含有指定字符串的文件

查找名称中含有关键词 updatedb 的文件:

[root@htlwk0001host ~]# locate updatedb
/etc/updatedb.conf
/usr/bin/updatedb
/usr/lib/systemd/system/mlocate-updatedb.service
/usr/lib/systemd/system/mlocate-updatedb.timer
/usr/libexec/mlocate-run-updatedb
/usr/share/man/man5/updatedb.conf.5.gz
/usr/share/man/man8/updatedb.8.gz
/usr/share/vim/vim80/ftplugin/updatedb.vim
/usr/share/vim/vim80/syntax/updatedb.vim

注:这不是执行更新命令,后面的 updatedb 是搜索的关键词

使用正则表达式查找特定条件的文件

例如,查找以 /var/lib/rpm 开头的文件:

[root@localhost ~]# locate -r ^/var/lib/rpm

查找 etc.conf 结尾的文件:

[root@localhost ~]# locate -r etc.conf$

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法正义_正义联盟的Sprint Boot

算法正义正义联盟&#xff08;Justice League&#xff09;进入了黑暗时代&#xff0c;强大的Darkseid征服了人类。 蝙蝠侠在《神力女超人》的帮助下&#xff0c;努力使联盟与一个关键方面失联。 适当的正义联盟成员管理系统。 由于时间不在他们身边&#xff0c;他们不想经历繁琐…

indesign如何画弧线_彩铅画入门教程,如何给独角兽设计一款好发型

戳这里 → 查看“爱蜜干货文章目录”本次综合训练的目的1&#xff0e;挖掘你的绘画感和想象力&#xff0c;彩色鬃毛色彩大家可以自由发挥哦&#xff01;2.练习彩铅的长线条&#xff0c;现在练习的长条还是比较简单的&#xff0c;下次综合训练我们还会练习更加复杂的3.彩铅这种画…

微型计算机作为载体的部件是,大工11秋《计算机应用基础》辅导资料二

计算机应用基础辅导资料二主题&#xff1a;计算机基础知识的辅导资料学习时间&#xff1a;2011年10月10日&#xff0d;10月16日内容&#xff1a;这周我们主要学习课件&#xff0e;&#xff0e;第二章计算机的基础知识&#xff0c;本章的学习要求及需要掌握的重点内容如下&#…

Linux 命令之 whereis -- 显示命令及相关文件的路径

文章目录一、命令介绍二、选项参数三、参考示例&#xff08;一&#xff09;显示 ln 命令的程序和 man 手册页的位置&#xff08;二&#xff09;显示 tomcat 相关文件的路径一、命令介绍 whereis 命令用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。 wher…

markdown如何设置图片大小_Gitee(码云)实现免费 Markdown 图床

“阅读本文大概需要 6 分钟前言Markdown是一种易于上手的轻量级标记语言&#xff0c;由于其目的在于注重文字内容而不是排版&#xff0c;目前很受大家欢迎&#xff0c;写完一篇文档可以直接复制到其他各大平台上&#xff0c;不用担心格式字体等混乱问题但是文章中如果引用了某个…

json-tree api_什么是JSON处理(JSON-P API)?

json-tree apiJava EE中的JSON-P简介 JSON处理1.0&#xff08; JSR 353 &#xff09;的Java API是一个低级&#xff0c;轻量级的JSON解析器和生成器&#xff0c;它提供了在属性和值级别上操作JSON数据的能力。 JSR 353提供了两种JSON处理模型&#xff1a; 对象模型和流模型。 …

适合利用计算机模拟的是,计算机模拟在数学建模中的应用

计算机模拟在数学建模中的应用计算机模拟是按时间来划分的&#xff0c;因为计算机模拟实质上是系统随时间变化而变化的动态写照&#xff0c;以下是小编搜集整理的一篇探究计算机模拟在数学建模应用的论文范文&#xff0c;供大家阅读参考。【摘要】本文主要阐述了如何利用计算机…

噪音声压和声功率的区别_南昌汽车隔音,深入了解汽车噪音的来源、危害以及解决方案...

汽车噪音带来的危害&#xff1a;汽车噪音对人体健康的影响是多方面的。噪音作用于人的中枢神经系统&#xff0c;使人们大脑皮层的兴奋与抑制平衡失调&#xff0c;导致条件反射异常&#xff0c;使脑血管张力遭到损害。这些生理上的变化&#xff0c;在早期能够恢复原状&#xff0…

Linux 命令之 which -- 查找并显示给定命令的绝对路径(查找命令的位置/查询命令的位置/搜索命令的位置/查看命令的位置)

文章目录一、命令介绍二、选项参数三、参考示例&#xff08;一&#xff09;查找 java 命令的位置一、命令介绍 which 命令的作用是在 PATH 变量指定的路径中&#xff0c;搜索某个系统命令的位置&#xff0c;并且返回第一个搜索结果。 运维人员在日常工作中经常使用 which 命令…

lua加密教程_我们相信加密! 教程

lua加密教程许多人认为加密是一个复杂的主题&#xff0c;这很难理解。 可以实现其某些方面&#xff0c;但是每个人都可以理解它在更高层次上的工作方式。 这就是我要处理的这篇文章。 用简单的术语解释它是如何工作的&#xff0c;然后使用一些代码。 是的&#xff0c;我们信任…

生产用计算机软件管理台账,计算机台账管理系统

计算机台账管理系统计算机台账管理系统是什么&#xff1f;什么是计算机台账管理系统&#xff1f;对于设备管理而言&#xff0c;设备台账是其重要的组成部分&#xff0c;计算机台账管理系统对设备的编号、适用规格、年限、使用部门等具体信息进行管理&#xff0c;方便设备资产的…

Linux 查看数据库MySQL安装文件和安装目录的命令

文章目录数据库 MySQL 相关目录说明/var/lib/mysql/usr/bin/usr/share/mysql/usr/lib/mysql/etc/my.cnf查看 MySQL 相关文件/目录的命令查看已安装的 MySQL 相关软件包名称查看某个软件包的所有安装文件查看 MySQL 相关的所有文件使用命令 find 查找含有 mysql 关键字的文件路径…

java关键字和标识符_Java数据类型和标识符

java关键字和标识符在本教程中&#xff0c;我们将了解Java中的数据类型和标识符。 Java语言具有丰富的数据类型实现。 数据类型指定大小和可以存储在标识符中的值的类型。 Java数据类型分为两类&#xff1a; 原始数据类型 非原始数据类型 原始类型 Java定义了八种原始数据…

fcpx怎么合成延时摄影_延时摄影合成终极后期教程

原来常见的延时摄影&#xff0c;一般都是软件生成或视频加速实现&#xff0c;这种方法简单快捷&#xff0c;但是后期处理空间小&#xff0c;画质差。现在追求高画质都会采用拍摄照片&#xff0c;后期合成&#xff0c;索尼等相机型号&#xff0c;自带有间隔拍摄功能&#xff0c;…

狂妄之人怎么用计算机弹,【B】 Undertale Sans战斗曲 MEGALOVANIA狂妄之人

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼66/ 98868955/ 98868944/ 98868933/ 98868966/ 98868955/ 98868944/ 98868933/ 98868966/ 98868955/ 98868944/ 98868933/ 98868966/ 98868955/ 98868944/ 98868933/ 9886898 88 8 866 888998689 8889-* ///-/* 99 9(快速按) */…

Mac OS 在远程主机(Linux 系统)上使用命令执行 sql 脚本文件(使用的是 MySQL 数据库)

文章目录使用命令 mysql 执行脚本文件连接远程主机后&#xff0c;直接使用命令 mysql进入 MySQL 的 bin 目录后&#xff0c;再执行 mysql 命令使用命令 source 执行脚本文件sql 脚本文件内容&#xff1a;use production; BEGIN; INSERT INTO td_dictionary (dict_group,dict_co…

计算机网络的拓扑模型,基于复杂网络模型的计算机网络拓扑结构研究

一篇基于复杂网络模型的计算机网络拓扑结构研究论文第卷期第年月计算机科学基于复杂网络模型的计算机网络拓扑结构研究杜彩凤中国石油大学摘,东营,要,随着计算机网络的快速发展网络结构日益复杂传统的随机网络模型已很难对其拓扑特性作出客观的描,.述因此复杂网络理论为计算机网…

交华为换机access配置_华为交换机VLAN内Proxy ARP配置示例

华为交换机VLAN内Proxy ARP配置示例1、组网需求图1 VLAN内Proxy ARP组网示例图如上图1所示&#xff0c;Switch的接口GE1/0/2和GE1/0/1属于同一个sub-VLAN2。该sub-VLAN属于super-VLAN3。要求&#xff1a;属于同一VLAN2的两台主机hostA和hostB之间二层隔离。hostA和hostB之间通过…

java中regex_Java 9中的新Regex功能

java中regex最近&#xff0c;我收到了Packt出版的Anubhava Srivastava提供的免费书籍“ Java 9 Regular Expressions” 。 这本书是一个很好的教程&#xff0c;它向想要学习正则表达式并从头开始的任何人介绍。 那些知道如何使用正则表达式的人可能仍然很有趣&#xff0c;以重申…

mvc @html.editorfor,在MVC中,@Html.EditorFor(m = ( )_CSharp_开发99编程知识库

1 。Html.EditorFor(m > m)顯示整個模型編輯器。Html.EditorFor(m > m.propertyName)顯示模型的特定屬性編輯器。2 。Html.EditorFor(m > m)等於 Html.EditorFor(t > t)或 Html.EditorFor(randomName > randomName). 名稱並不重要&#xff0c;只是參數的名稱。 …