locate和find命令

来源:互联网 发布:直播平台带宽算法 编辑:程序博客网 时间:2024/06/05 06:29

前段时间做一个查找文件位置的小测试,才知道还有个locate命令,用起来比find快很多...

我用的fedora12上没有预装这个软件,只有yum安装了

命令:yum install mlocate

装上之后并不能立马使用,因为这个命令要依赖一个db数据文件

locate之所以比find快就是因为它把所有文件的位置都放在了这个db文件中

[root@root ~]# locate

locate: can not stat () `/var/lib/mlocate/mlocate.db': 没有那个文件或目录

[root@root ~]# updatedb     #时间较长

[root@root ~]# ls /var/lib/mlocate/mlocate.db 
 /var/lib/mlocate/mlocate.db

这个时候再用locate命令就行了,支持正则表达式

使用方法:locate xx(要查找的文件名) -l num(要显示的行数)。当然这个文件名在系统中出现太多,就需要用到-l这个参数。不然等着刷屏吧。

正则使用参数:-r, –regexp REGEXP

更多的参数用man locate看吧


find有个很特别的命令参数-exec,可以执行其他的命令,很强大(在fedora 12上测试)

比如:find . -name *.o -exec rm -f {} +

就可以删掉搜索到的所有.o文件,有可这个命令就可以省很多事了~!

注:rm -f是要执行的命令,{}是find搜索到的集合,后面的+不可省略,意义暂未知,如果不加会出现下面的错误

find: missing argument to `-exec'


原创粉丝点击