当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > Linux 指令篇:档案目录管理--locate

Unix/Linux
Linux crontab定时执行任务 命令格式与详细例子
linux 查看用户及用户组的方法
让Linux系统有效防御ARP攻击的实用技巧
Linux 常用软件列表
linux wget 一个强大的下载命令
linux 常用脚本、命令
linux 磁盘配额 简单介绍
Linux服务器架设笔记 Squid服务器配置
ubuntu intel 集成显卡安装
ubuntu 9.04 X3100 显卡开启3D特效
Ubuntu 8.10 Server Ruby 的安装方法
Ubuntu root帐户密码修改
ubuntu下apt-get 命令参数
Ubuntu Linux下实现QQ的三种方式
Ubuntu 8.04中建立PHP+MySQL环境
Ubuntu常用软件大全
Ubuntu系统下安装Aircrack-ng
Ubuntu实现FTP功能
ubuntu 字体美化实现方法
ubuntu下netbeans汉字显示残缺问题

Unix/Linux 中的 Linux 指令篇:档案目录管理--locate


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 37 ::
收藏到网摘: n/a

  名称:locate
使用权限:所有使用者
使用方式: locate [-q] [-d ] [--database=
locate [-r ] [--regexp=]
locate [-qv] [-o ] [--output=
locate [-e ] [-f ] <[-l ] [-c]
<[-U ] [-u]>
locate [-Vh] [--version] [--help]
说明: 

locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的数据库,之后当寻找时就只需查询这个数据库,而不必实际深入档案系统之中了。 

在一般的 distribution 之中,数据库的建立都被放在 contab 中自动执行。一般使用者在使用时只要用 

# locate your_file_name

的型式就可以了。 参数: 
-u
-U 
建立数据库,-u 会由根目录开始,-U 则可以指定开始的位置。 

-e 
将   排除在寻找的范围之外。 

-l 
如果  是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。 

-f 
将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在数据库中。 

-q 
安静模式,不会显示任何错误讯息。 

-n 
至多显示  个输出。 

-r 
使用正规运算式  做寻找的条件。 

-o 
指定数据库存的名称。 

-d 
指定数据库的路径 

-h
显示辅助讯息 

-v
显示更多的讯息 

-V
显示程序的版本讯息 范例: 

locate chdrv            : 寻找所有叫 chdrv 的档案
locate -n 100 a.out     : 寻找所有叫  a.out 的档案,但最多只显示 100 个
locate -u               : 建立数据库




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强迫系统立即修改索引数据库。 
不过第一次在执行update後再使用locate寻找档案常会失败,此时就要执行slocate ˉu该命令(也可执行updatedb指令,其效果相同)来更新slocate数据库,该命令会在/usr/sbin下产生slocate执行档,再由locate到此数据库寻找所要找的资料。