Linux中locate命令的实践总结
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。在一般的 distribution 之中,数据库的建立都被放在 crontab 中自动执行。
ps1:Linux distribution表示Linux发行版。其实Linux是指的系统的内核,不能认为是一个系统。有人在内核的基础上增加一些软件,就成 了一个操作系统了。这个系统因为以Linux为内核,所有就叫Linux发行版。大部分人为了简单,所以把发行版省掉了,实际上世上没有Linux 这个操作系统,因为他只是个内核。现在出现Linux这一称呼,实际上是Linux发行版。这是正规的说法。
ps2:crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux 系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以设置计划任务,所以, Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。
Linux下的任务调度分为两类,系统任务调度和用户任务调度。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。
1.命令格式:
Locate [选择参数] [样式]
2.命令功能:
locate 命令可以在搜寻数据库时快速找到档案,数据库由updatedb程序来更新,updatedb是由cron daemon周期性建立的,locate命令 在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是locate所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值 中,updatedb每天会跑一次,可以由修改crontab来更新设定值。(etc/crontab)
locate 指定用在搜寻符合条件的档案,它会去储存档案与目录名称的数据库内,寻找合乎范本样式条件的档案或目录录,可以使用特殊字元(如”*” 或”?”等)来指 定范本样式,如指定范本为kcpa*ner, locate会找出所有起始字串为kcpa且结尾为ner的档案或目录,如名称为kcpartner若目录 录名称为kcpa_ner则会列出该目录下包括 子目录在内的所有档案。
locate 指令和find找寻档案的功能类似,但locate是透过update程序将硬盘中的所有档案和目录资料先建立一个索引数据库,在 执行loacte时直 接找该索引,查询速度会较快,索引数据库一般是由操作系统管理,但也可以直接下达update强迫系统立即修改索引数据库。
ps1:updatedb命令用来创建或更新slocate命令所必需的数据库文件。updatedb命令的执行过程较长,因为在执行时它会遍历整个系统的目录树,并将所有的文件信息写入slocate数据库文件中
补充说明:slocate本身具有一个数据库,里面存放了系统中文件与目录的相关信息。
3.命令参数:
-e 将排除在寻找的范围之外。
-1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
-f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中。
-q 安静模式,不会显示任何错误讯息。
-n 至多显示 n个输出。
-r 使用正规运算式 做寻找的条件。
-o 指定资料库存的名称。
-d 指定资料库的路径
-h 显示辅助讯息
-V 显示程式的版本讯息
4.使用实例:
实例1:查找和android相关的所有文件,并且只显示前5个
命令:
location android -n
输出:
aijian.shi@U-aijian-shi:~$ locate android -n
/data/nishome/tdsw1/aijian.shi/.android
/data/nishome/tdsw1/aijian.shi/.android/adbkey
/data/nishome/tdsw1/aijian.shi/.android/adbkey.pub
/data/nishome/tdsw1/aijian.shi/.cache/software-center/icons/android-user-es--icon--001_Portada_AU06x64.png
/data/nishome/tdsw1/aijian.shi/.cache/software-center/icons/android-user-es--icon-icon_AU07.png
aijian.shi@U-aijian-shi:~$
实例2: 搜索alm的bin目录下所有以i/I开头的文件
命令:
locate ~/alm/bin/I* -i #-i表示不区分大小写
输出:
aijian.shi@U-aijian-shi:~$ locate ~/alm/bin/I* -i
/data/nishome/tdsw1/aijian.shi/alm/bin/IntegrityClient
/data/nishome/tdsw1/aijian.shi/alm/bin/IntegrityClient.lax
/data/nishome/tdsw1/aijian.shi/alm/bin/ident
/data/nishome/tdsw1/aijian.shi/alm/bin/im
/data/nishome/tdsw1/aijian.shi/alm/bin/integrity
aijian.shi@U-aijian-shi:~$
*在shell中表示通配符,表示零个或多个字符。 比如当前目录下有abc.c、abdd.c、abeff.c。可以用ls ab*.c来查看
注意
ps:
Linux手动更新locate数据库命令:
updatedb
输出:
aijian.shi@U-aijian-shi:~/Downloads$ updatedb
updatedb: can not open a temporary file for `/var/lib/mlocate/mlocate.db'
aijian.shi@U-aijian-shi:~/Downloads$
aijian.shi@U-aijian-shi:~/Downloads$ sudo updatedb #开启updatedb手动更新数据库权限
[sudo] password for aijian.shi:
aijian.shi@U-aijian-shi:~/Downloads$
可以看到,我的linux机器没有sudo权限,所以无法手动更新数据库。
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。
其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。 总结:
1. locate的速度比find快,因为它并不是真的查找文件,而是查数据库
2. locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护
3. 升级数据库命令:locate -- u(不明白这一步的操作意义和效果)
Linux中locate命令的实践总结的更多相关文章
- 【每天一个Linux命令】14. Linux中locate命令的用法
命令用途 locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案. 其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了. ...
- Linux中grep命令的12个实践例子
grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具.无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和 ...
- linux中查找命令find、locate、whereis、which、type区别
linux中查找命令find.locate.whereis.which.type区别 1. find Java代码 find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件.与查询数据库(/ ...
- Linux中sed的用法实践
Linux中sed的用法实践 参考资料:https://www.cnblogs.com/emanlee/archive/2013/09/07/3307642.html http://www.fn139 ...
- Linux中exec命令相关
Linux中exec命令相关 exec和source都属于bash内部命令(builtins commands),在bash下输入man exec或man source可以查看所有的内部命令信息. b ...
- linux中touch命令参数修改文件的时间戳(转)
linux中touch命令参数不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件,以下是linux中touch命令参数的使用方法: touch [-acm][-r ...
- linux中执行命令权限不够怎样处理
在linux中执行命令权限不够就要增加权限,先看遇到的情况 查看权限情况 那就赋予权限 执行命令
- Linux中监控命令top命令使用方法详解
收集了两篇关于介绍Linux中监控命令top命令的详细使用方法的文章.总的来说,top命令主要用来查看Linux系统的各个进程和系统资源占用情况,在监控Linux系统性能方面top显得非常有用,下面就 ...
- Linux中date命令的各种实用方法--转载
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,自己也曾经为时间的各种表示方法和如何修改时间而困惑,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的 ...
随机推荐
- 前端开发 - jQuery
本节内容 一.jQuery概述 二.选择器 三.操作DOM 四.修改DOM结构 五.事件 六.动画 七.AJAX(待续) 八.扩展(待续) 一.jQuery概述 jQuery 是一个 JavaScri ...
- 前端开发 - JavaScript 词法分析
JavaScript代码运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 1.分析函数的参数 2.分析函数的变量声明 3.分析函数的函数声明表达式 具体步骤如下: 函数在运行的瞬间,生成 ...
- centos下添加epel源
RHEL以及他的衍生发行版如CentOS.Scientific Linux为了稳定,官方的rpm repository提供的rpm包往往是很滞后的,当然了,这样做这是无可厚非的,毕竟这是服务器版本,安 ...
- 关于tableview下拉刷新崩溃的问题
逻辑应该是这样的:1. 下拉2. 达到下拉临界值以后再请求网络数据3. 待数据加载到本地以后才更新 data source4. reload tableview 如果先清空再下拉,后果就是往下拉的距离 ...
- MVC使用TempData将返回的string传到另一个控制器页面中显示!
我需要把数据库中查询出的数据,传递到另一个控制器的页面去显示. https://blog.csdn.net/ma_jiang/article/details/8164212 看了上面这篇文章,反应过来 ...
- 【转】OAuth的改变
原文地址:http://huoding.com/2011/11/08/126 去年我写过一篇<OAuth那些事儿>,对OAuth做了一些简单扼要的介绍,今天我打算写一些细节,以阐明OAut ...
- 表单控件 css的三中引入方式css选择器
1. 表单控件: 单选框 如果两个单选的name值一样,会产生互斥效果 <p> <!--单选框--> 男<input type="radio" nam ...
- 跟着刚哥学习Spring框架--AOP(五)
AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.OOP引入 ...
- Liferay-Activiti 企业特性功能介绍 (新版Liferay7)
前言 如果你是开发者 你已经是多少次开发一个项目,一次次的用一些框架,一次次的写类似的重复的代码,一次次建表\写类和方法\写HTML\CSS\JAVASCRIPT,一次次测试,一次次的写Bug...如 ...
- 【liferay】6、关于liferay中使用requestMapping映射地址提交表单
1.接着上一篇博客,从新在定义一下页面 <%@ page contentType="text/html; charset=utf-8" language="java ...