用locate查找文件

4.6 搜索文件

Fedora借助mlocate软件包维护了一个文件系统所有文件(/etc/updatedb.conf文件指定例外情况)相关的数据库。 locate命令可以搜索该数据库,由于搜索的是数据库而非实际的文件系统,故能立即返回结果。locate出现之前,大部分Linux用户使用find 命令在文件系统中查找文件。这一节将分别介绍locate和find命令。

4.6.1 用locate查找文件

locate数据库不仅包含命令,还包含文件系统各个节点的名称,使用locate可以查找文件系统里的命令、设备、手册页、数据文件或可根据名字识别的任意文件。示例如下:

 
 
  1. $ locate e100  
  2. /lib/modules/2.6.20-1.2949.fc7/kernel/drivers/net/e100.ko  
  3. /lib/modules/2.6.20-1.2949.fc7/kernel/drivers/net/e1000/e1000.ko 

上面的示例会查找e100.ko和e1000.ko这两个内核模块。locate命令使用-i选项时不区分大小写,否则区分大小写,示例如下:

 
 
  1. $ locate -i itco_wdt  
  2. /lib/modules/2.6.20-1.2949.fc7/kernel/drivers/char/watchdog/iTCO_wdt.ko 

下面几个示例使用locate加上正则表达式:

 
 
  1. $ locate -r /ls$             查找以/ls$结尾的文件  
  2. /bin/ls  
  3. /usr/share/locale/l10n/ls  
  4. $ locate -r mkfs*3           查找文件名包含mkfs和3的文件  
  5. /sbin/mkfs.ext3  
  6. /usr/share/man/man8/mkfs.ext3.8.gz  
  7. $ locate -r ^/boot/grub/me   查找以/boot/grub/me开头的文件  
  8. /boot/grub/menu.lst 

RPM包mlocate(有些Linux发行版为slocate)会提供一个cron作业,每天运行一次updatedb命令,用于更新文件 locate数据库。由于用户要找的文件可能在数据库上次更新后已删除,可以使用locate -e检查数据库中找到的文件是否仍然存在:

 
 
  1. $ locate -e myfilename 

手工运行updatedb命令可以立即更新locate数据库:

 
 
  1. # updatedb
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值