linux命令详解(20)查找文件locate、whereis、rpm 命令详解

2014-12-22 13:03:25     12 人阅读    

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

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

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

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

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

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

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

$ locate -e myfilename

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

# updatedb

用于查找文件的其他命令包括whereis和which命令,示例如下:

$ whereis man
man: /usr/bin/man /etc/man.config /usr/local/man /usr/share/man
/usr/share/man/man1p/man1p.gz /usr/share/man/man1/man1.gz
/usr/share/man/man7/man.7.gz
$ which ls 
alias ls='ls --color=tty'
     /bin/ls

whereis命令比较实用,该命令不仅查找命令,还查找命令相关联的手册页和配置文件。对man一词执行whereis命令,就能看到man可执行文件及man命令的配置文件和手册页位置。第二个which命令示例的结果表明ls命令设定有别名,并给出ls可执行文件的路径(/bin/ls)。查询PATH环境变量中可执行文件的实际位置时,which命令就能派上用场,示例如下:

$ rpm –qif `which ps`

上面运行的file命令表明,bash shell提供了多种格式的文档文件。file命令会查看文件内容,确定文件是否包含troff标记(


原文地址:http://www.itmmd.com/201412/358.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

产品经理学习笔记(11)用户调研的方法   上一篇
下一篇  大型网站架构设计-消息系统ActiveMQ &JMS (2)

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!